פועלים לפי השלבים במדריך למתחילים הזה, ובתוך כ-10 דקות תהיה לכם אפליקציית שורת פקודה פשוטה ב-Python ששולחת בקשות ל-API של המפיץ להרשמה ללא מגע.
דרישות מוקדמות
כדי להריץ את המדריך למתחילים הזה, צריך:
- חשבון Google שמשויך לחשבון המפיץ שלכם להרשמה דרך הארגון. אם עדיין לא הצטרפתם, עליכם לפעול לפי השלבים שמפורטים בקטע תחילת העבודה במדריך לפורטל המפיצים.
- Python מגרסה 2.6 ואילך.
- הכלי לניהול חבילות pip.
- גישה לאינטרנט ולדפדפן אינטרנט.
שלב 1: מפעילים את ה-API להרשמה דרך הארגון
- אפשר להשתמש באשף הזה כדי ליצור או לבחור פרויקט ב-Google Developers Console ולהפעיל את ה-API באופן אוטומטי. לוחצים על המשך ואז על כניסה לפרטי הכניסה.
- מגדירים את האפשרות What data will you be accessing? (אילו נתונים תהיה לך גישה אליהם?) ל-Application data (נתוני האפליקציה).
- לוחצים על הבא. אמורה להופיע בקשה ליצור חשבון שירות.
- נותנים שם תיאורי בשדה Service account name.
- חשוב לזכור שמזהה חשבון השירות (נראה כמו כתובת אימייל) כי תשתמשו בו מאוחר יותר.
- מגדירים את Role ל-Service Accounts > Service Account User.
- לוחצים על Done כדי לסיים ליצור את חשבון השירות.
- לוחצים על כתובת האימייל של חשבון השירות שנוצר.
- לוחצים על **Keys**.
- לוחצים על 'הוספת מפתח' ואז על 'יצירת מפתח חדש'.
- בשדה **סוג מפתח**, בוחרים באפשרות **JSON**.
- לוחצים על Create והמפתח הפרטי יורד למחשב.
- לוחצים על **סגירה**.
- מעבירים את הקובץ לספריית העבודה ומעניקים לו את השם
service_account_key.json
.
שלב 2: קישור חשבון השירות
- פותחים את פורטל ההרשמה דרך הארגון. יכול להיות שתצטרכו להיכנס לחשבון.
- לוחצים על Service accounts.
- לוחצים על קישור חשבון השירות.
- מגדירים את Email address לכתובת של חשבון השירות שיצרתם.
- לוחצים על קישור חשבון השירות כדי להשתמש בחשבון השירות בחשבון ההרשמה ללא מגע.
שלב 3: התקנת ספריית הלקוח של Google
מריצים את הפקודה הבאה כדי להתקין את הספרייה באמצעות pip:
pip install --upgrade google-api-python-client
בדף ההתקנה של הספרייה מפורטות אפשרויות התקנה שונות.
שלב 4: מגדירים את הדגימה
יוצרים קובץ בשם quickstart.py
בספריית העבודה. מעתיקים את הקוד הבא ושומרים את הקובץ. מזינים את מזהה השותף שלכם למפיץ כערך של PARTNER_ID
(שורה ראשונה של האפליקציה אחרי הייבוא).
#!/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()
מזהה השותף
בדרך כלל, צריך לציין את מזהה השותף המפיץ כארגומנטים בקריאות ל-API. כדי למצוא את מזהה השותף בפורטל ההרשמה ללא מגע, פועלים לפי השלבים הבאים:
- פותחים את הפורטל. יכול להיות שתצטרכו להיכנס לחשבון.
- לוחצים על Service accounts.
- מעתיקים את המספר של מזהה השותף מהשורה מזהה המפיץ שלך.
שלב 5: מריצים את הדוגמה
משתמשים במרכז העזרה של מערכת ההפעלה כדי להריץ את הסקריפט בקובץ. במחשבים עם UNIX ו-Mac, מריצים את הפקודה הבאה בטרמינל:
python quickstart.py
הדפסת תגובות API
כדי שיהיה קל יותר לבדוק את התשובות כשמנסים את ה-API, צריך לעצב את נתוני התשובה בפורמט JSON. קטע הקוד הבא מראה איך לעשות זאת ב-Python באמצעות המודול 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)
פתרון בעיות
אפשר לספר לנו מה השתבש בעזרת המדריך למתחילים, ונעבוד כדי לפתור את הבעיה. במאמר הרשאה מוסבר איך שירות zero-touch משתמש בחשבונות שירות כדי לאשר קריאות ל-API.