البدء السريع للعملاء باستخدام لغة Python

اتّبِع الخطوات الواردة في دليل البدء السريع هذا، وفي حوالي 10 دقائق، يتوفّر لديك تطبيق سطر أوامر Python بسيط يقدّم طلبات إلى واجهة برمجة التطبيقات لبرنامج "إعداد الأجهزة الجوّالة للمؤسسات دفعةً واحدة".

المتطلبات الأساسية

لتنفيذ دليل البدء السريع هذا، ستحتاج إلى ما يلي:

  • حساب Google، وهو عضو في حساب العميل المُستخدَم في "إعداد الأجهزة الجوّالة للمؤسّسات دفعةً واحدة". يمكنك الاطّلاع على البدء.
  • الإصدار 3.0 أو الإصدارات الأحدث من Python.
  • أداة إدارة الحزمة pip
  • إمكانية الوصول إلى الإنترنت ومتصفح الويب

الخطوة 1: تفعيل واجهة برمجة التطبيقات لبرنامج "إعداد الأجهزة الجوّالة للمؤسّسات دفعةً واحدة"

  1. يمكنك استخدام هذا المعالج لإنشاء مشروع أو اختياره في Google Play Console وتفعيل واجهة برمجة التطبيقات تلقائيًا. انقر على متابعة، ثم الانتقال إلى بيانات الاعتماد .
  2. انقر على إلغاء في القسم "إنشاء بيانات اعتماد".
  3. في أعلى الصفحة، انقر على علامة التبويب شاشة موافقة OAuth. اختَر عنوان بريد إلكتروني، وأدخِل اسم المنتج إذا لم يسبق لك إجراء ذلك، ثم انقر على الزر حفظ.
  4. اختَر علامة التبويب بيانات الاعتماد وانقر على الزر إنشاء بيانات اعتماد واختَر معرِّف عميل OAuth.
  5. اختَر نوع التطبيق غير ذلك، وأدخِل الاسم "البدء السريع"، ثم انقر على الزر إنشاء.
  6. انقر على حسنًا لإغلاق لوحة عميل OAuth.
  7. انقر على تنزيل JSON.
  8. انقل الملف إلى دليل العمل وأعِد تسميته إلى client_secret.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 import tools
from oauth2client.client import flow_from_clientsecrets
from oauth2client.file import Storage

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


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

  Ask the user to authorize the request using their Google Account in their
  browser. Because this method stores the cedential in the
  USER_CREDENTIAL_FILE, the user is typically only asked to the first time they
  run the script.

  Returns:
    Credentials, the user's credential.
  """
  flow = flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
  storage = Storage(USER_CREDENTIAL_FILE)
  credential = storage.get()

  if not credential or credential.invalid:
    credential = tools.run_flow(flow, storage)  # skipping flags for brevity
  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: تشغيل عيّنة

استخدِم مساعدة نظام التشغيل لتشغيل النص البرمجي في الملف. على أجهزة الكمبيوتر التي تعمل بنظامي التشغيل UNIX وMac، شغّل الأمر أدناه في الوحدة الطرفية:

python quickstart.py

عند تشغيل التطبيق لأول مرة، تحتاج إلى منح الإذن بالوصول:

  1. يحاول التطبيق فتح علامة تبويب جديدة في المتصفّح التلقائي. إذا تعذّر ذلك، انسخ عنوان URL من وحدة التحكّم وافتحه في المتصفّح. إذا لم تكن قد سجَّلت الدخول إلى حسابك على Google، سيُطلب منك تسجيل الدخول. إذا سجّلت الدخول إلى حسابات متعددة على Google، ستطلب منك الصفحة اختيار حساب للتفويض.
  2. انقر على قبول.
  3. أغلِق علامة تبويب المتصفّح، وسيستمر تشغيل التطبيق.

ملاحظات

  • وبما أنّ مكتبة برامج Google API تخزّن بيانات التفويض على نظام الملفات، لا تطلب منك عمليات الإطلاق اللاحقة تقديم تفويض.
  • لإعادة ضبط بيانات تفويض التطبيق، يجب حذف ملف user_credential.json وتشغيل التطبيق مرة أخرى.
  • إنّ مسار التفويض في بدء الاستخدام السريع هذا مثالي لتطبيق سطر الأوامر. ولمعرفة كيفية إضافة تفويض إلى تطبيق ويب، يمكنك الاطّلاع على استخدام OAuth 2.0 لتطبيقات خادم الويب.

تحديد المشاكل وحلّها

وفي ما يلي بعض المواضيع الشائعة التي عليك التحقّق منها. أخبِرنا بالمشكلة التي حدثت باستخدام ميزة "البدء السريع" وسنعمل على حلّها.

  • تأكّد من تفويض تفويض واجهة برمجة التطبيقات باستخدام حساب Google نفسه المرتبط بحساب العميل في برنامج "إعداد الأجهزة الجوّالة للمؤسسات دفعةً واحدة". حاوِل تسجيل الدخول إلى بوابة برنامج "إعداد الأجهزة الجوّالة للمؤسسات دفعةً واحدة" باستخدام حساب Google نفسه لاختبار إمكانية الوصول إلى البرنامج.
  • تأكَّد من أنّ الحساب قد وافق على أحدث بنود الخدمة في البوابة. يُرجى الاطّلاع على حسابات العملاء.

مزيد من المعلومات