このクイックスタート ガイドの手順に沿って、約 10 分で、ゼロタッチ登録リセラー API にリクエストを送信するシンプルな Python コマンドライン アプリを作成できます。
前提条件
このクイックスタートを実行するには、以下のものが必要です。
- ゼロタッチ登録販売パートナー アカウントのメンバーである Google アカウント。まだオンボーディングを開始していない場合は、販売パートナー ポータル ガイドのスタートガイドの手順に沿って操作してください。
- Python 2.6 以降。
- pip パッケージ管理ツール。
- インターネット アクセスとウェブブラウザ。
ステップ 1: ゼロタッチ登録 API を有効にする
- Google Developers Console でこちらのウィザードを使ってプロジェクトを作成するか既存のプロジェクトを選択すると、自動的に API が有効になります。[続行]、[認証情報に進む] の順にクリックします。
- [アクセスするデータの種類] を [アプリケーション データ] に設定します。
- [次へ] をクリックします。サービス アカウントの作成を求めるメッセージが表示されます。
- [サービス アカウント名] にわかりやすい名前を付けます。
- 後で使用するため、サービス アカウント ID(メールアドレスに似ています)をメモしておきます。
- [ロール] を [サービス アカウント] > [サービス アカウント ユーザー] に設定します。
- [完了] をクリックして、サービス アカウントの作成を完了します。
- 作成したサービス アカウントのメールアドレスをクリックします。
- [キー] をクリックします。
- [鍵を追加]、[新しい鍵を作成] の順にクリックします。
- [**鍵のタイプ**] で [**JSON**] を選択します。
- [作成] をクリックすると、秘密鍵がパソコンにダウンロードされます。
- [閉じる] をクリックします。
- ファイルを作業ディレクトリに移動し、名前を
service_account_key.json
に変更します。
ステップ 2: サービス アカウントをリンクする
- ゼロタッチ登録ポータルを開きます。ログインが必要となる場合があります。
- [サービス アカウント] をクリックします。
- [ サービス アカウントをリンク] をクリックします。
- [メールアドレス] に、作成したサービス アカウントのアドレスを設定します。
- [サービス アカウントをリンク] をクリックして、ゼロタッチ登録アカウントでサービス アカウントを使用します。
ステップ 3: Google クライアント ライブラリをインストールする
pip を使用してライブラリをインストールするには、次のコマンドを実行します。
pip install --upgrade google-api-python-client
さまざまなインストール オプションについては、ライブラリのインストール ページをご覧ください。
ステップ 4: サンプルを設定する
作業ディレクトリに quickstart.py
という名前のファイルを作成します。次のコードをコピーしてファイルを保存します。PARTNER_ID
の値として、独自の販売パートナー ID を挿入します(インポート後のアプリの最初の行)。
#!/usr/bin/env python # -*- coding: utf-8 -*- """Zero-touch enrollment reseller quickstart. This script forms the quickstart introduction to the zero-touch enrollemnt reseller API. To learn more, visit https://developer.google.com/zero-touch """ from apiclient.discovery import build from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials # TODO: replace this with your partner reseller ID. PARTNER_ID = '11036885'; # A single auth scope is used for the zero-touch enrollment customer API. SCOPES = ['https://www.googleapis.com/auth/androidworkprovisioning'] SERVICE_ACCOUNT_KEY_FILE = 'service_account_key.json' def get_credential(): """Creates a Credential object with the correct OAuth2 authorization. Creates a Credential object with the correct OAuth2 authorization for the service account that calls the reseller API. The service endpoint calls this method when setting up a new service instance. Returns: Credential, the user's credential. """ credential = ServiceAccountCredentials.from_json_keyfile_name( SERVICE_ACCOUNT_KEY_FILE, scopes=SCOPES) return credential def get_service(): """Creates a service endpoint for the zero-touch enrollment reseller 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(Http()) service = build('androiddeviceprovisioning', 'v1', http=http_auth) return service def main(): """Runs the zero-touch enrollment quickstart app. """ # Create a zero-touch enrollment API service endpoint. service = get_service() # Send an API request to list all our customers. response = service.partners().customers().list(partnerId=PARTNER_ID).execute() # Print out the details of each customer. if 'customers' in response: for customer in response['customers']: print 'Name:{0} ID:{1}'.format( customer['companyName'], customer['companyId']) else: print 'No customers found' if __name__ == '__main__': main()
パートナー ID
API 呼び出しでは通常、引数として販売パートナー ID が必要です。ゼロタッチ登録ポータルでパートナー ID を確認する手順は次のとおりです。
- ポータルを開きます。ログインが必要となる場合があります。
- [サービス アカウント] をクリックします。
- [販売パートナー ID] 行からパートナー ID 番号をコピーします。
ステップ 5: サンプルを実行する
オペレーティング システムのヘルプを使用して、ファイル内のスクリプトを実行します。UNIX と Mac のコンピュータでは、ターミナルで次のコマンドを実行します。
python quickstart.py
API レスポンスの出力
API の試行時にレスポンスを簡単に検査できるように、JSON レスポンス データをフォーマットします。次のスニペットは、JSON モジュールを使用して Python でこれを行う方法を示しています。
from json import dumps
# ...
results = provisioning.partners().devices().claimAsync(partnerId=MY_PARTNER_ID,
body={'claims':new_claims}).execute()
# Print formatted JSON response
print dumps(results, indent=4, sort_keys=True)
トラブルシューティング
クイックスタートで問題が発生した場合は、お知らせください。修正に向けて取り組みます。ゼロタッチでサービス アカウントを使用して API 呼び出しを認可する方法については、認可をご覧ください。