המדריך למתחילים של Python ללקוחות שמשתמשים בחשבון שירות

פועלים לפי השלבים במדריך למתחילים הזה, ובתוך כ-10 דקות תהיה לכם אפליקציית שורת פקודה פשוטה ב-Python ששולחת בקשות לממשק ה-API ללקוחות להרשמה ללא מגע באמצעות חשבון שירות.

דרישות מוקדמות

כדי להריץ את המדריך למתחילים הזה, צריך:

  • חשבון שירות שמקושר לחשבון הלקוח שלכם להרשמה דרך הארגון. ראו Get בתהליך.
  • Python בגרסה 3.0 ומעלה.
  • הכלי לניהול חבילות pip.
  • גישה לאינטרנט ולדפדפן אינטרנט.

שלב 1: מפעילים את ה-API להרשמה דרך הארגון

  1. אפשר להשתמש בקישור הזה באשף ליצירה או בחירה של פרויקט ב-Google Developers Console, להפעיל את ה-API באופן אוטומטי. לוחצים על המשך ואז על מעבר לפרטי הכניסה. .
  2. מגדירים את האפשרות What data will you be accessing? (אילו נתונים תהיה לך גישה אליהם?) ל-Application data (נתוני האפליקציה).
  3. לוחצים על הבא. אמורה להופיע בקשה ליצור שירות חשבון.
  4. נותנים לשם חשבון השירות שם תיאורי.
  5. שימו לב למזהה חשבון השירות (הוא נראה כמו כתובת אימייל) כי תשתמשו בו בהמשך.
  6. מגדירים את Role ל-Service Accounts > משתמש בחשבון שירות.
  7. לוחצים על Done כדי לסיים ליצור את חשבון השירות.
  8. לוחצים על כתובת האימייל של חשבון השירות שנוצר.
  9. לוחצים על **Keys**.
  10. לוחצים על **הוספת מפתח** ואז על **יצירת מפתח חדש**.
  11. בשדה **סוג מפתח**, בוחרים באפשרות **JSON**.
  12. לוחצים על Create והמפתח הפרטי יורד למחשב.
  13. לוחצים על **סגירה**.
  14. צריך להעביר את הקובץ לספריית העבודה ולשנות את השם שלו ל-service_account_key.json.

שלב 2: מתקינים את ספריית הלקוח של Google

מריצים את הפקודה הבאה כדי להתקין את הספרייה באמצעות pip:

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

בדף ההתקנה של הספרייה מפורטות אפשרויות התקנה שונות.

שלב 3: מגדירים את הדוגמית

יוצרים קובץ בשם quickstart.py בספריית העבודה. מעתיקים את הקוד הבא ושומרים את הקובץ.

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

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

import sys
from apiclient import discovery
import httplib2
from oauth2client.service_account import ServiceAccountCredentials

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


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

  Uses the service account key stored in SERVICE_ACCOUNT_KEY_FILE.

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

  if not credential or credential.invalid:
    print('Unable to authenticate using service account key.')
    sys.exit()
  return credential


def get_service():
  """Creates a service endpoint for the zero-touch enrollment 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(httplib2.Http())
  return discovery.build('androiddeviceprovisioning', 'v1', http=http_auth)


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

  # Get the customer's account. Because a customer might have more
  # than one, limit the results to the first account found.
  response = service.customers().list(pageSize=1).execute()

  if 'customers' not in response:
    # No accounts found for the user. Confirm the Google Account
    # that authorizes the request can access the zero-touch portal.
    print('No zero-touch enrollment account found.')
    sys.exit()
  customer_account = response['customers'][0]['name']

  # Send an API request to list all the DPCs available using the customer
  # account.
  results = service.customers().dpcs().list(parent=customer_account).execute()

  # Print out the details of each DPC.
  for dpc in results['dpcs']:
    # Some DPCs may not have a name, so replace with a marker.
    if 'dpcName' in dpc:
      dpcName = dpc['dpcName']
    else:
      dpcName = "-"
    print('Name:{0}  APK:{1}'.format(dpcName, dpc['packageName']))


if __name__ == '__main__':
  main()

שלב 4: מוסיפים את המפתח של חשבון השירות

צריך להעתיק את service_account_key.json שהורדת כשיצרת את חשבון שירות בספריית העבודה שלך.

שלב 5: הרצת הדוגמה

מריצים את הסקריפט שבקובץ בעזרת העזרה של מערכת ההפעלה. במחשבים עם UNIX ו-Mac, מריצים את הפקודה הבאה בטרמינל:

python quickstart.py

הערות

מידע נוסף