شروع سریع Python برای مشتریانی که از حساب سرویس استفاده می‌کنند

مراحل این راهنمای شروع سریع را دنبال کنید و در حدود ۱۰ دقیقه یک برنامه خط فرمان Python ساده خواهید داشت که بااستفاده از حساب سرویس، درخواست‌هایی به میانای برنامه‌سازی کاربردی مشتری ثبت‌نام تمام خودکار ارسال می‌کند.

پیش‌نیازها

برای اجرای این شروع سریع، به موارد زیر نیاز دارید:

  • حساب سرویسی که به حساب مشتری ثبت‌نام تمام‌خودکار شما پیوند داده شده است. شروع به کار را ببینید.
  • ‫Python نسخه ۳.۰ یا بالاتر.
  • ابزار مدیریت بسته pip.
  • دسترسی به اینترنت و مرورگر وب.

مرحله ۱: روشن کردن API ثبت‌نام تمام خودکار

  1. از این جادوگر برای ایجاد یا انتخاب پروژه در Google Developers Console و روشن کردن خودکار API استفاده کنید. روی ادامه، سپس رفتن به اطلاعات کاربری کلیک کنید.
  2. به چه داده‌هایی دسترسی خواهید داشت؟ را روی داده‌های برنامه تنظیم کنید.
  3. روی بعدی کلیک کنید. باید از شما خواسته شود حساب سرویس ایجاد کنید.
  4. نامی توصیفی برای نام حساب سرویس وارد کنید.
  5. شناسه حساب سرویس را یادداشت کنید (شبیه نشانی ایمیل است) چون بعداً به آن نیاز خواهید داشت.
  6. نقش را روی حساب‌های سرویس > کاربر حساب سرویس تنظیم کنید.
  7. روی تمام کلیک کنید تا ایجاد حساب خدمات تکمیل شود.
  8. روی نشانی ایمیل حساب سرویسی که ایجاد کرده‌اید کلیک کنید.
  9. روی **کلیدها** کلیک کنید.
  10. روی **افزودن کلید** کلیک کنید، سپس روی **ایجاد کلید جدید** کلیک کنید.
  11. برای **نوع کلید**، **JSON** را انتخاب کنید.
  12. روی ایجاد کلیک کنید تا کلید خصوصی در رایانه‌تان بارگیری شود.
  13. روی **بستن** کلیک کنید.
  14. فایل را به دایرکتوری کاری‌تان منتقل کنید و نام آن را به service_account_key.json تغییر دهید.

مرحله ۲: نصب کتابخانه کارخواه Google

فرمان زیر را اجرا کنید تا کتابخانه را بااستفاده از pip نصب کنید:

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

برای گزینه‌های مختلف نصب، صفحه نصب کتابخانه را ببینید.

مرحله ۳: راه‌اندازی نمونه

فایلی با نام quickstart.py در دایرکتوری کاری‌تان ایجاد کنید. کد زیر را کپی کنید و فایل را ذخیره کنید.

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

This script forms the quickstart introduction to the zero-touch enrollment
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()

مرحله ۴: افزودن کلید حساب سرویس

service_account_key.json را که هنگام ایجاد حساب سرویس بارگیری کردید در فهرست راهنمای کاری‌تان کپی کنید.

مرحله ۵: اجرای نمونه

برای اجرای دستورگان در فایل، از راهنمای سیستم‌عاملتان استفاده کنید. در رایانه‌های UNIX و Mac، فرمان زیر را در پایانه اجرا کنید:

python quickstart.py

یادداشت‌ها

  • از هم‌رسانی فایل service_account_key.json با دیگران خودداری کنید. مراقب باشید آن را در مخازن کد منبع قرار ندهید. می‌توانید توصیه‌های بیشتری درباره مدیریت اطلاعات محرمانه حساب سرویس بخوانید.

بیشتر بدانید