مراحل این راهنمای شروع سریع را دنبال کنید و در حدود ۱۰ دقیقه یک برنامه خط فرمان Python ساده خواهید داشت که درخواستهایی به میانای برنامهسازی کاربردی مشتری ثبتنام تمام خودکار ارسال میکند.
پیشنیازها
برای اجرای این شروع سریع، به موارد زیر نیاز دارید:
- «حساب Google» که عضو حساب مشتری ثبتنام تمامخودکار شما باشد. شروع به کار را ببینید.
- Python نسخه ۳.۰ یا بالاتر.
- ابزار مدیریت بسته pip.
- دسترسی به اینترنت و مرورگر وب.
مرحله ۱: روشن کردن API ثبتنام تمام خودکار
- از این جادوگر برای ایجاد یا انتخاب پروژه در Google Developers Console و روشن کردن خودکار API استفاده کنید. روی ادامه، سپس رفتن به اطلاعات کاربری کلیک کنید.
- روی لغو در «ایجاد اطلاعات کاربری» کلیک کنید.
- در بالای صفحه، برگه صفحه کسب رضایت OAuth را انتخاب کنید. نشانی ایمیل را انتخاب کنید، اگر نام محصول ازقبل تنظیم نشده است آن را وارد کنید، و روی دکمه ذخیره کلیک کنید.
- برگه اعتبارنامهها را انتخاب کنید، روی دکمه ایجاد اعتبارنامهها کلیک کنید و شناسه کارخواه OAuth را انتخاب کنید.
- نوع برنامه دیگر را انتخاب کنید، نام «شروع سریع» را وارد کنید، و روی دکمه ایجاد کلیک کنید.
- برای بستن پانل کارخواه OAuth، روی تأیید کلیک کنید.
- روی بارگیری JSON کلیک کنید.
- فایل را به دایرکتوری کاریتان منتقل کنید و نام آن را به
client_secret.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 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()
مرحله ۴: اجرای نمونه
برای اجرای دستورگان در فایل، از راهنمای سیستمعاملتان استفاده کنید. در رایانههای UNIX و Mac، فرمان زیر را در پایانه اجرا کنید:
python quickstart.py
اولینباری که برنامه را اجرا میکنید، باید دسترسی را مجاز کنید:
- برنامه سعی میکند برگه جدیدی در مرورگر پیشفرضتان باز کند. اگر این کار ناموفق بود، نشانی وب را از کنسول کپی کنید و آن را در مرورگرتان باز کنید. اگر ازقبل به سیستم «حساب Google» خود وارد نشده باشید، از شما درخواست میشود به سیستم وارد شوید. اگر به سیستم چند حساب Google وارد شده باشید، صفحه از شما میخواهد حسابی را برای صدور مجوز انتخاب کنید.
- روی Accept (پذیرش) کلیک کنید.
- برگه مرورگر را ببندید—برنامه همچنان اجرا میشود.
یادداشتها
- چون کتابخانه کارخواه Google API دادههای مجوز را در سیستم فایل ذخیره میکند، راهاندازیهای بعدی از شما درخواست مجوز نمیکنند.
- برای بازنشانی دادههای مجوز برنامه، فایل
user_credential.jsonرا حذف کنید و برنامه را دوباره اجرا کنید. - جریان صدور مجوز در این شروع سریع برای برنامه خط فرمان ایدهآل است. برای آشنایی با نحوه افزودن مجوز به برنامه وب، به استفاده از OAuth 2.0 برای برنامههای وب سرور مراجعه کنید.
عیبیابی
در اینجا چند مورد رایج وجود دارد که باید بررسی کنید. به ما بگویید چه مشکلی در شروع سریع پیش آمد تا برای رفع آن تلاش کنیم.
- بررسی کنید که تماسهای API را با همان «حساب Google» که عضو حساب مشتری ثبتنام تمام خودکار شما است مجاز میکنید. برای آزمایش دسترسیتان، با همان «حساب Google» به سیستم درگاه ثبتنام تمام خودکار وارد شوید.
- تأیید کنید که حساب جدیدترین «شرایط خدمات» را در درگاه پذیرفته است. حسابهای مشتری را ببینید.