このセクションでは、Google Play Developer API に固有の手順について説明します。詳細については、OAuth2 の完全なドキュメントをご覧ください。
初期設定
Google Play Android Developer API へのアクセスは、OAuth 2.0 ウェブサーバーのフローにより認証されます。API を使用する前に、API Console プロジェクトを設定し、クライアント ID を作成して更新トークンを生成する必要があります。
API Console プロジェクトを作成する
- API Console に移動し、Google Play Console アカウントでログインします。
- [プロジェクトを作成] を選択します。
- 左側のナビゲーション パネルで [サービス] に移動します。
- Google Play Android Developer API をオンにします。
- 利用規約に同意します。
- 左側のナビゲーション パネルで [API アクセス] に移動します。
- [OAuth 2.0 クライアント ID を作成] を選択します。
- 最初のページでは、プロダクト名を入力する必要がありますが、ロゴは不要です。なお、プロダクト名はエンドユーザーに表示されません。
- 2 番目のページでは、ウェブアプリを選択し、リダイレクト URI と JavaScript のオリジンを設定します。これらの設定はどちらも後で変更できます。
- [クライアント ID を作成] を選択します。
更新トークンを生成する
-
Google Play Console アカウントでログインしたまま、次の URI に移動します。
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=...&client_id=...
- プロンプトが表示されたら、[アクセスを許可] を選択します。
-
ブラウザは、
code
パラメータを含むリダイレクト URI にリダイレクトされます。この URI は4/eWdxD7b-YSQ5CNNb-c2iI83KQx19.wp6198ti5Zc7dJ3UXOl0T3aRLxQmbwI
のようになります。 -
次のフィールドを設定して POST リクエストを
https://accounts.google.com/o/oauth2/token
に送信することにより、このコードをアクセス トークンと更新トークンのペアに交換します。grant_type=authorization_code code=<the code from the previous step> client_id=<the client ID token created in the APIs Console> client_secret=<the client secret corresponding to the client ID> redirect_uri=<the URI registered with the client ID>
成功すると、JSON 形式のトークンを含むレスポンスが返されます。{ "access_token" : "ya29.ZStBkRnGyZ2mUYOLgls7QVBxOg82XhBCFo8UIT5gM", "token_type" : "Bearer", "expires_in" : 3600, "refresh_token" : "1/zaaHNytlC3SEBX7F2cfrHcqJEa3KoAHYeXES6nmho" }
API にアクセスする
クライアント認証情報と更新トークンを生成すると、サーバーはアクティブなログインまたは人による介入なしに API にアクセスできるようになります。
アクセス トークンを使用する
サーバーは、リクエストの Authorization
ヘッダーでアクセス トークンを渡すことにより、API を呼び出します。
Authorization: Bearer oauth2-token
更新トークンを使用する
各アクセス トークンは短期間のみ有効です。現在のアクセス トークンの有効期限が切れたら、サーバーは更新トークンを使用して新しいアクセス トークンを取得する必要があります。そのためには、次のフィールドを設定して POST リクエストを https://accounts.google.com/o/oauth2/token
に送信します。
grant_type=refresh_token client_id=<the client ID token created in the APIs Console> client_secret=<the client secret corresponding to the client ID> refresh_token=<the refresh token from the previous step>
成功すると、別のアクセス トークンを含むレスポンスが返されます。
{ "access_token" : "ya29.AHES3ZQ_MbZCwac9TBWIbjW5ilJkXvLTeSl530Na2", "token_type" : "Bearer", "expires_in" : 3600, }
このように、更新トークンを使用することにより、Google アカウントへのアクティブなログインがなくても、ウェブサーバーは継続的に API にアクセスできます。