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 sencilla que realiza solicitudes a la inscripción automática API para revendedores de inscripción.

Requisitos previos

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

  • Una Cuenta de Google que pertenezca a tu revendedor de inscripción automática de servicio predeterminada. Si aún no te has incorporado, sigue los pasos que se indican en Cómo comenzar en la Guía del portal para revendedores.
  • Python 2.6 o superior.
  • La administración de paquetes pip herramienta.
  • Acceso a Internet y un navegador web

Paso 1: Activa la API de inscripción automática

  1. Utiliza esto para crear o seleccionar un proyecto en Google Developers Console y activará automáticamente la API. Haga clic en Continuar y, luego, en Ir a Credenciales
  2. Configura ¿A qué datos accederás? en Datos de la aplicación.
  3. Haz clic en Siguiente. Se te pedirá que crees un servicio de servicio predeterminada.
  4. Asigna un nombre descriptivo al Nombre de la cuenta de servicio.
  5. Anota el ID de cuenta de servicio (parece una dirección de correo electrónico) porque usarla más tarde.
  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 **Key type**, selecciona **JSON**.
  12. Haz clic en Crear y la clave privada se descargará en tu computadora.
  13. Haz clic en **Cerrar**.
  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 Servicio 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 inscripción automática una cuenta de inscripció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 instalación de la biblioteca para diferentes instalaciones. opciones de estado.

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. Insertar su propio socio distribuidor ID como el valor de PARTNER_ID (la primera línea de la app después del de todos los tamaños).

#!/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

Por lo general, las llamadas a la API necesitan su ID de socio revendedor como argumento. Para encontrar tu ID de socio en el portal de inscripción sin intervención, sigue estos pasos:

  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

Respuestas de la API de impresión

Para facilitar la inspección de respuestas cuando pruebas la API, formatea el archivo JSON de respuesta ante incidentes. El siguiente fragmento muestra cómo puedes hacer esto en Python usando 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 y solucionar el problema. Para descubrir cómo la inscripción automática usa cuentas de servicio para autorizar llamadas a la API, consulta Autorización.

Más información