서비스 계정을 사용하는 고객을 위한 Python 빠른 시작

이 빠른 시작 가이드의 단계를 따르면 약 10분 후에 서비스 계정을 사용하여 제로터치 등록 고객 API에 요청하는 간단한 Python 명령줄 앱이 준비됩니다.

기본 요건

이 빠른 시작을 실행하려면 다음이 필요합니다.

  • 제로터치 등록 고객 계정에 연결된 서비스 계정 시작하기를 참고하세요.
  • Python 3.0 이상
  • pip 패키지 관리 도구
  • 인터넷 및 웹브라우저 액세스

1단계: 제로터치 등록 API 사용 설정하기

  1. 이 마법사를 사용하여 Google Developers Console에서 프로젝트를 만들거나 선택하고 자동으로 API를 사용 설정할 수 있습니다. 계속을 클릭한 다음 사용자 인증 정보로 이동을 클릭합니다.
  2. 어떤 데이터에 액세스하시겠습니까?애플리케이션 데이터로 설정합니다.
  3. 다음을 클릭합니다. 서비스 계정을 만들라는 메시지가 표시됩니다.
  4. 서비스 계정 이름을 설명하는 이름을 지정합니다.
  5. 나중에 사용할 수 있도록 서비스 계정 ID (이메일 주소 형식)를 기록해 둡니다.
  6. 역할서비스 계정 > 서비스 계정 사용자로 설정합니다.
  7. 완료를 클릭하여 서비스 계정 만들기를 마칩니다.
  8. 만든 서비스 계정의 이메일 주소를 클릭합니다.
  9. **키**를 클릭합니다.
  10. **키 추가**를 클릭한 다음 **새 키 만들기**를 클릭합니다.
  11. **키 유형**으로 **JSON**을 선택합니다.
  12. 만들기를 클릭하면 비공개 키가 컴퓨터에 다운로드됩니다.
  13. **닫기**를 클릭합니다.
  14. 파일을 작업 디렉터리로 이동하고 이름을 service_account_key.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.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()

4단계: 서비스 계정 키 추가

서비스 계정을 만들 때 다운로드한 service_account_key.json를 작업 디렉터리에 복사합니다.

5단계: 샘플 실행

운영체제의 도움말을 사용하여 파일에서 스크립트를 실행합니다. UNIX 및 Mac 컴퓨터의 경우 터미널에서 아래 명령어를 실행합니다.

python quickstart.py

메모

  • service_account_key.json 파일을 다른 사람과 공유하지 마세요. 소스 코드 저장소에 포함하지 않도록 주의하세요. 자세한 내용은 서비스 계정 보안 비밀 처리를 참조하세요.

자세히 알아보기