Hướng dẫn nhanh về Python cho khách hàng

Làm theo các bước trong hướng dẫn bắt đầu nhanh này. Trong khoảng 10 phút, bạn có một ứng dụng dòng lệnh Python đơn giản giúp thực hiện các yêu cầu đối với API khách hàng thiết lập tự động.

Điều kiện tiên quyết

Để chạy tính năng khởi động nhanh này, bạn cần:

  • Tài khoản Google là một thành viên của tài khoản khách hàng thiết lập tự động. Xem phần Bắt đầu.
  • Python.
  • Công cụ quản lý gói pip.
  • Truy cập Internet và trình duyệt web.

Bước 1: Bật API thiết lập tự động

  1. Sử dụng trình hướng dẫn này để tạo hoặc chọn một dự án trong Google Developers Console và tự động bật API. Nhấp vào Tiếp tục, sau đó nhấp vào Chuyển đến thông tin đăng nhập.
  2. Nhấp vào Hủy trên thông tin đăng nhập Tạo.
  3. Ở đầu trang, hãy chọn thẻ Màn hình xin phép bằng OAuth. Chọn Địa chỉ email, nhập Tên sản phẩm nếu bạn chưa đặt và nhấp vào nút Lưu.
  4. Chọn thẻ Thông tin xác thực, nhấp vào nút Tạo thông tin xác thực rồi chọn Mã ứng dụng khách OAuth.
  5. Chọn loại ứng dụng Other, nhập tên "Quickstart", rồi nhấp vào nút Create (Tạo).
  6. Nhấp vào OK để loại bỏ bảng Ứng dụng OAuth.
  7. Nhấp vào Tải xuống JSON.
  8. Di chuyển tệp vào thư mục đang làm việc và đổi tên client_secret.json.

Bước 2: Cài đặt thư viện ứng dụng Google

Chạy lệnh sau để cài đặt thư viện bằng pip:

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

Hãy xem trang cài đặt của thư viện để biết các tuỳ chọn cài đặt khác nhau.

Bước 3: Thiết lập mẫu

Tạo tệp có tên quickstart.py trong thư mục đang làm việc của bạn. Sao chép mã sau đây và lưu tệp.

#!/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()

Bước 4: Chạy mẫu

Sử dụng trợ giúp của hệ điều hành để chạy tập lệnh trong tệp. Trên máy tính UNIX và Mac, hãy chạy lệnh bên dưới trong thiết bị đầu cuối của bạn:

python quickstart.py

Lần đầu tiên chạy ứng dụng, bạn cần cấp quyền truy cập:

  1. Ứng dụng sẽ tìm cách mở một thẻ mới trong trình duyệt mặc định. Nếu không thành công, hãy sao chép URL từ bảng điều khiển rồi mở trong trình duyệt. Nếu chưa đăng nhập vào Tài khoản Google của mình, bạn sẽ được nhắc đăng nhập. Nếu bạn đã đăng nhập vào nhiều tài khoản Google, trang sẽ nhắc bạn chọn một tài khoản để ủy quyền.
  2. Nhấp vào Chấp nhận.
  3. Đóng tab trình duyệt—ứng dụng sẽ tiếp tục chạy.

Ghi chú

  • Vì thư viện ứng dụng Google API lưu trữ dữ liệu ủy quyền trên hệ thống tệp, nên các lần khởi chạy tiếp theo sẽ không nhắc bạn ủy quyền.
  • Để đặt lại dữ liệu ủy quyền của ứng dụng, hãy xóa tệp user_credential.json rồi chạy lại ứng dụng.
  • Quy trình ủy quyền trong khởi động nhanh này lý tưởng cho ứng dụng dòng lệnh. Để tìm hiểu cách thêm ủy quyền vào ứng dụng web, hãy xem Sử dụng OAuth 2.0 cho ứng dụng máy chủ web.

Khắc phục sự cố

Dưới đây là một số điều phổ biến bạn sẽ muốn kiểm tra. Hãy cho chúng tôi biết bạn gặp vấn đề gì khi bắt đầu nhanh và chúng tôi sẽ tìm cách khắc phục.

  • Kiểm tra để đảm bảo rằng bạn ủy quyền cho các lệnh gọi API bằng cùng một Tài khoản Google dùng cho tài khoản khách hàng đăng ký thiết lập tự động. Hãy thử đăng nhập vào cổng thiết lập tự động bằng cách sử dụng cùng một Tài khoản Google để kiểm tra quyền truy cập của bạn.
  • Xác nhận rằng tài khoản đã chấp nhận Điều khoản dịch vụ mới nhất trong cổng thông tin. Xem Tài khoản khách hàng.

Tìm hiểu thêm