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 aplicación de línea de comandos de Python simple que realiza solicitudes a la API de distribuidor de inscripción automática.

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 distribuidor de inscripción automática. Si aún no te inscribiste, sigue los pasos que se indican en Comenzar en la Guía del portal de distribuidores.
  • 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 automática

  1. Usa este asistente para crear o seleccionar un proyecto en Google Developers Console y activar la API automáticamente. Haz clic en Continuar y, luego, en Ir a Credenciales.
  2. Configure ¿A qué datos accederá? en Datos de la aplicación.
  3. Haz clic en Siguiente. Se te solicitará que crees una cuenta de servicio.
  4. Proporciona un nombre descriptivo para el Nombre de la cuenta de servicio.
  5. Ten en cuenta el ID de la cuenta de servicio (parece una dirección de correo electrónico) porque lo usarás más tarde.
  6. Configura la Función como Cuentas de servicio > Usuario de cuentas 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 **Keys**.
  10. Haz clic en **Agregar clave** y luego en **Crear clave nueva**.
  11. En **Tipo de clave**, selecciona **JSON**.
  12. Haga clic en Crear y la clave privada se descargará en su 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. Abra 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. Configura la opción Dirección de correo electrónico como la dirección de la cuenta de servicio que creaste.
  5. Haz clic en Vincular cuenta de servicio para usarla con tu cuenta de inscripción automática.

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 de distribuidor 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 del socio

Las llamadas a la API normalmente necesitan tu ID de socio distribuidor como argumento. Para encontrar tu ID de socio en el portal de inscripción automática, sigue estos pasos:

  1. Abre el portal. Es posible que debas acceder.
  2. Haz clic en Cuentas de servicio .
  3. Copie su número de ID de socio desde la línea Su ID de distribuidor.

Paso 5: Ejecuta la muestra

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

python quickstart.py

Imprimir respuestas de la API

Para que sea más fácil inspeccionar las respuestas cuando pruebes la API, da formato a los datos de respuesta JSON. En el siguiente fragmento, se muestra cómo hacer esto 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 cuál fue el problema con la guía de inicio rápido, y trabajaremos para solucionarlo. Para saber cómo la inscripción automática usa cuentas de servicio a fin de autorizar llamadas a la API, lee Autorización.

Más información