Hướng dẫn bắt đầu nhanh về Python cho khách hàng

Hãy làm theo các bước trong hướng dẫn bắt đầu nhanh này và sau khoảng 10 phút, bạn sẽ một ứng dụng dòng lệnh Python đơn giản giúp đưa ra yêu cầu đến thiết bị tự động API khách hàng đăng ký.

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

Để chạy quy trình bắt đầu nhanh này, bạn cần:

  • Tài khoản Google là thành viên của khách hàng thiết lập tự động tài khoản. Xem phần Bắt đầu.
  • Python 3.0 trở lên.
  • Quản lý gói pip .
  • Truy cập vào 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 phần thông tin đăng nhập .
  2. Nhấp vào Huỷ trên phần Tạo thông tin xác thực.
  3. Ở đầu trang, hãy chọn thẻ Màn hình xin phép bằng OAuth. Chọn một Địa chỉ email, nhập Tên sản phẩm nếu chưa đặt và nhấp vào nút Lưu.
  4. Chọn thẻ Credentials (Thông tin xác thực), nhấp vào Create credentials (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 Khác, rồi nhập tên "Bắt đầu nhanh" rồi nhấp vào nút Tạo .
  6. Nhấp vào OK để đóng bảng điều khiển ứng dụng OAuth.
  7. Nhấp vào Tải tệp JSON xuống.
  8. Di chuyển tệp vào thư mục đang làm việc rồi đổi tên tệp 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

Xem phần cài đặt của thư viện trang cho các chế độ cài đặt khác nhau .

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

Tạo một tệp có tên quickstart.py trong thư mục đang hoạt động. Sao chép trong sau đó mã 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 phần trợ giúp của hệ điều hành để chạy tập lệnh trong tệp. Trên UNIX và Mac máy tính, hãy chạy lệnh bên dưới trong cửa sổ dòng lệnh của bạn:

python quickstart.py

Trong lần đầu chạy ứng dụng, bạn cần uỷ quyền truy cập:

  1. Ứng dụng sẽ cố gắng mở một thẻ mới trong trình duyệt mặc định của bạn. Nếu thao tác này không thành công, hãy sao chép URL từ bảng điều khiển và mở bảng điều khiển đó trong trình duyệt của bạn. Nếu chưa đăng nhập vào Tài khoản Google, 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 này sẽ nhắc bạn chọn một tài khoản cho lệnh uỷ quyền.
  2. Nhấp vào Chấp nhận.
  3. Đóng thẻ trình duyệt, ứng dụng sẽ tiếp tục chạy.

Ghi chú

  • Vì thư viện ứng dụng API của Google lưu trữ dữ liệu uỷ quyền trên hệ thống tệp, nên các lần chạy ứng dụng không nhắc bạn về việc uỷ quyền.
  • Để đặt lại dữ liệu uỷ quyền của ứng dụng, hãy xoá user_credential.json rồi chạy lại ứng dụng.
  • Quy trình uỷ quyền trong phần khởi động nhanh này là lựa chọn lý tưởng cho ứng dụng dòng lệnh. Để tìm hiểu cách thêm cho phép một ứ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ểm phổ biến mà bạn nên kiểm tra. Hãy cho chúng tôi biết lỗi bằng tính năng bắt đầu nhanh và chúng tôi sẽ tìm cách khắc phục.

  • Kiểm tra để chắc chắn rằng bạn đang cho phép thực hiện lệnh gọi API bằng cùng một Tài khoản Google là thành viên của tài khoản khách hàng 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ùng một Tài khoản Google để kiểm tra quyền truy cập.
  • 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 dịch vụ. Xem Tài khoản khách hàng.

Tìm hiểu thêm