Python-Kurzanleitung für Reseller

Führen Sie die Schritte in dieser Kurzanleitung aus. In etwa 10 Minuten haben Sie eine einfache Python-Befehlszeilenanwendung, die Anfragen an die Reseller-API für die Zero-Touch-Registrierung sendet.

Voraussetzungen

Für diese Kurzanleitung benötigen Sie Folgendes:

  • Ein Google-Konto, das Mitglied Ihres Kontos für die Zero-Touch-Registrierung ist. Wenn Sie das noch nicht getan haben, folgen Sie der Anleitung unter Erste Schritte im Reseller-Portal-Leitfaden.
  • Python 2.6 oder höher.
  • Das Paketverwaltungstool pip.
  • Zugriff auf das Internet und einen Webbrowser.

Schritt 1: Zero-Touch-Registrierungs-API aktivieren

  1. Verwenden Sie diesen Assistenten, um ein Projekt in der Google Developers Console zu erstellen oder auszuwählen und die API automatisch zu aktivieren. Klicken Sie auf Weiter und dann auf Zu den Anmeldedaten.
  2. Setzen Sie Daten, auf die Sie zugreifen? auf Anwendungsdaten.
  3. Klicken Sie auf Weiter. Sie werden aufgefordert, ein Dienstkonto zu erstellen.
  4. Geben Sie für Dienstkontoname einen beschreibenden Namen ein.
  5. Notieren Sie sich die E-Mail-Adresse des Dienstkontos, da Sie sie später benötigen.
  6. Setzen Sie die Rolle auf Dienstkonten > Dienstkontonutzer.
  7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
  8. Klicken Sie auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
  9. Klicken Sie auf **Schlüssel**.
  10. Klicken Sie auf **Schlüssel hinzufügen** und dann auf **Neuen Schlüssel erstellen**.
  11. Wählen Sie für **Schlüsseltyp** die Option **JSON** aus.
  12. Klicken Sie auf Erstellen und der private Schlüssel wird auf Ihren Computer heruntergeladen.
  13. Klicken Sie auf **Schließen**.
  14. Verschieben Sie die Datei in Ihr Arbeitsverzeichnis und benennen Sie sie in service_account_key.json um.
  1. Öffnen Sie das Portal für die Zero-Touch-Registrierung. Möglicherweise müssen Sie sich im Portal anmelden.
  2. Klicken Sie auf Dienstkonten.
  3. Klicken Sie auf Dienstkonto verknüpfen.
  4. Geben Sie unter E-Mail-Adresse die Adresse des von Ihnen erstellten Dienstkontos an.
  5. Klicken Sie auf Dienstkonto verknüpfen, um das Dienstkonto mit Ihrem Konto für die Zero-Touch-Registrierung zu verwenden.

Schritt 3: Google-Clientbibliothek installieren

Führen Sie den folgenden Befehl aus, um die Bibliothek mit pip zu installieren:

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

Informationen zu den verschiedenen Installationsoptionen finden Sie auf der Installationsseite der Bibliothek.

Schritt 4: Beispiel einrichten

Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen quickstart.py. Kopieren Sie den folgenden Code und speichern Sie die Datei. Geben Sie Ihre eigene Reseller-Partner-ID als Wert für PARTNER_ID ein (die erste Zeile der Anwendung nach dem Import).

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

Partner-ID

API-Aufrufe benötigen normalerweise Ihre Reseller-Partner-ID als Argument. So finden Sie Ihre Partner-ID über das Portal für die Zero-Touch-Registrierung:

  1. Öffnen Sie das Portal. Möglicherweise müssen Sie sich im Portal anmelden.
  2. Klicken Sie auf Dienstkonten.
  3. Kopieren Sie die Partner-ID aus der Zeile Ihre Reseller-ID.

Schritt 5: Beispiel ausführen

Verwenden Sie die Hilfe Ihres Betriebssystems, um das Skript in der Datei auszuführen. Führen Sie auf UNIX- und Mac-Computern den folgenden Befehl in Ihrem Terminal aus:

python quickstart.py

API-Antworten drucken

Formatieren Sie die JSON-Antwortdaten, um die API-Antworten beim Prüfen zu überprüfen. Das folgende Snippet zeigt, wie Sie das in Python mit dem JSON-Modul tun können:

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)

Fehlerbehebung

Teilen Sie uns mit, was in der Kurzanleitung schiefgelaufen ist. Wir kümmern uns dann darum. Informationen dazu, wie Zero-Touch-Dienstkonten Dienstkonten zur Autorisierung von API-Aufrufen verwenden, finden Sie unter Autorisierung.

Weitere Informationen