Guía de inicio rápido de Python para revendedores

Sigue los pasos de esta guía de inicio rápido y, en unos 10 minutos, tendrás una app de línea de comandos de Python simple que realice solicitudes a la API del revendedor de inscripción sin intervención.

Requisitos previos

Para ejecutar esta guía de inicio rápido, necesitarás lo siguiente:

  • Una Cuenta de Google que sea miembro de tu cuenta de revendedor de inscripción automática Si aún no te integraste, sigue los pasos que se indican en Comenzar en la guía del portal para revendedores.
  • Python 2.6 o superior.
  • La herramienta de administración de paquetes pip.
  • Acceso a Internet y un navegador web

Paso 1: Activa la API de inscripción sin intervención

  1. Usa este asistente para crear o seleccionar un proyecto en Google Play Console y activar automáticamente la API. Haz clic en Continuar y, luego, en Ir a credenciales.
  2. Establece ¿A qué datos accederás? en Datos de la aplicación.
  3. Haz clic en Siguiente. Se te solicitará que crees una cuenta de servicio.
  4. Asigna un nombre descriptivo para Nombre de la cuenta de servicio.
  5. Anota el ID de la cuenta de servicio (parece una dirección de correo electrónico), ya que lo necesitarás más adelante.
  6. Establece Rol en Cuentas de servicio > Usuario de cuenta de servicio.
  7. Haz clic en Listo para terminar de crear la cuenta de servicio.
  8. Haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
  9. Haz clic en **Claves**.
  10. Haz clic en **Agregar clave** y, luego, en **Crear clave nueva**.
  11. En **Tipo de clave**, selecciona **JSON**.
  12. Haz clic en Crear y la clave privada se descargará en tu computadora.
  13. Haz clic en **Close**.
  14. Mueve el archivo a tu directorio de trabajo y cámbiale el nombre a service_account_key.json.
  1. Abre el portal de inscripción automática. Es posible que debas acceder.
  2. Haz clic en Cuentas de servicio.
  3. Haz clic en Vincular cuenta de servicio.
  4. Establece Dirección de correo electrónico en la dirección de la cuenta de servicio que creaste.
  5. Haz clic en Vincular cuenta de servicio para usar la cuenta de servicio con tu cuenta de inscripción sin intervención.

Paso 3: Instala la biblioteca cliente de Google

Ejecuta el siguiente comando para instalar la biblioteca con pip:

pip install --upgrade google-api-python-client

Consulta la página de instalación de la biblioteca para ver las diferentes opciones de instalación.

Paso 4: Configura la muestra

Crea un archivo llamado quickstart.py en tu directorio de trabajo. Copia el siguiente código y guarda el archivo. Inserta tu propio ID de socio minorista como el valor de PARTNER_ID (la primera línea de la app después de las importaciones).

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Zero-touch enrollment reseller quickstart.

This script forms the quickstart introduction to the zero-touch enrollemnt
reseller API. To learn more, visit https://developer.google.com/zero-touch
"""

from apiclient.discovery import build
from httplib2 import Http
from oauth2client.service_account import ServiceAccountCredentials

# TODO: replace this with your partner reseller ID.
PARTNER_ID = '11036885';

# A single auth scope is used for the zero-touch enrollment customer API.
SCOPES = ['https://www.googleapis.com/auth/androidworkprovisioning']
SERVICE_ACCOUNT_KEY_FILE = 'service_account_key.json'

def get_credential():
  """Creates a Credential object with the correct OAuth2 authorization.

  Creates a Credential object with the correct OAuth2 authorization
  for the service account that calls the reseller API. The service
  endpoint calls this method when setting up a new service instance.

  Returns:
    Credential, the user's credential.
  """
  credential = ServiceAccountCredentials.from_json_keyfile_name(
      SERVICE_ACCOUNT_KEY_FILE, scopes=SCOPES)
  return credential


def get_service():
  """Creates a service endpoint for the zero-touch enrollment reseller API.

  Builds and returns an authorized API client service for v1 of the API. Use
  the service endpoint to call the API methods.

  Returns:
    A service Resource object with methods for interacting with the service.
  """
  http_auth = get_credential().authorize(Http())
  service = build('androiddeviceprovisioning', 'v1', http=http_auth)
  return service


def main():
  """Runs the zero-touch enrollment quickstart app.
  """
  # Create a zero-touch enrollment API service endpoint.
  service = get_service()

  # Send an API request to list all our customers.
  response = service.partners().customers().list(partnerId=PARTNER_ID).execute()

  # Print out the details of each customer.
  if 'customers' in response:
    for customer in response['customers']:
      print 'Name:{0}  ID:{1}'.format(
          customer['companyName'], customer['companyId'])
  else:
    print 'No customers found'


if __name__ == '__main__':
  main()

ID de socio

Por lo general, las llamadas a la API necesitan tu ID de socio de revendedor como argumento. Para encontrar tu ID de socio en el portal de inscripción automática, sigue los pasos que se indican a continuación:

  1. Abre el portal. Es posible que debas acceder.
  2. Haz clic en Cuentas de servicio.
  3. Copia el número de ID de socio de la línea Tu ID de revendedor.

Paso 5: Ejecuta la muestra

Usa la ayuda de tu sistema operativo para ejecutar la secuencia de comandos en el archivo. En computadoras con UNIX y Mac, ejecuta el siguiente comando en la terminal:

python quickstart.py

Cómo imprimir respuestas de la API

Para facilitar la inspección de las respuestas cuando pruebes la API, da formato a los datos de respuesta de JSON. En el siguiente fragmento, se muestra cómo puedes hacerlo en Python con el módulo JSON:

from json import dumps

# ...

results = provisioning.partners().devices().claimAsync(partnerId=MY_PARTNER_ID,
 body={'claims':new_claims}).execute()
# Print formatted JSON response
print dumps(results, indent=4, sort_keys=True)

Solución de problemas

Cuéntanos qué salió mal en la guía de inicio rápido y trabajaremos para solucionarlo. Si quieres obtener información sobre cómo la inscripción automática usa cuentas de servicio para autorizar las llamadas a la API, consulta Autorización.

Más información