APIアクセス
APIアクセス
開発者コンソールのAPIを使用するには、セキュリティプロファイルを作成し、それを開発者コンソールのAPIに関連付ける必要があります。セキュリティプロファイルは、APIアクセス用のアクセストークンを生成するためのメカニズムです。
注: セキュリティプロファイルを作成したり、APIアクセスをリクエストしたりするには、Amazon開発者コンソールアカウントに管理者レベルの権限が付与されている必要があります。
セキュリティプロファイルの作成方法
セキュリティプロファイルを作成するには、次の手順に従います。
- Amazon開発者コンソールアカウントにログインします。アカウントがない場合は、アカウントの作成を求められます。
- メインナビゲーションで、[アプリ&サービス] をクリックします。
- サブメニューで、[APIアクセス] を選択します。
-
APIの名前をクリックします。
- [セキュリティプロファイルを新規作成] ボタンをクリックします。
- 新しいプロファイルの [セキュリティプロファイル名] と [セキュリティプロファイルの説明] を入力し、[保存] をクリックします。
- [ウェブ設定] タブを開き、表示されているクライアントIDとクライアントシークレットを保存します。この情報はSales Reporting APIにアクセスする際に必要になります。
セキュリティプロファイルをAPIに関連付ける方法
セキュリティプロファイルをAPIに関連付けるには、次の手順に従います。
- [APIアクセス] ページに戻ります。
- 先ほどクリックしたAPIの名前を再度クリックします。
- 新たに作成したセキュリティプロファイルをドロップダウンリストから選択します。
- [関連付ける] をクリックして、セキュリティプロファイルをこのAPIに関連付けます。API名と、関連付けられたセキュリティプロファイルが、[使用中のセキュリティプロファイル] パネルに追加されます。
これで、クライアントIDとクライアントシークレットを使用して、Login with Amazon(LWA)アクセストークンをリクエストできるようになりました。
LWAアクセストークンのリクエスト方法
クライアントIDおよびクライアントシークレットと共にLogin with Amazon APIを使用して、Login with Amazonアクセストークンをリクエストするには、次の手順に従います。
1.トークンリクエストを送信する
次のヘッダーとコンテンツでhttps://api.amazon.com/auth/o2/token
にPOSTリクエストを送信します。
- ヘッダー:
Content-Type: application/x-www-form-urlencoded
- コンテンツ:
client_id
: セキュリティプロファイルの作成方法に記載の手順7で保存したクライアントIDです。client_secret
: セキュリティプロファイルの作成方法の手順7で保存したクライアントシークレットです。grant_type
: 値をclient_credentials
に設定します。scope
: 値をappstore::apps:readwrite
(Reporting APIの場合はadx_reporting::appstore:marketer
)に設定します。
JSONコンテンツの例:
{
"grant_type": "client_credentials",
"client_id": "amzn1.application-oa2-client.<クライアントID>",
"client_secret": "<クライアントシークレット>",
"scope": "appstore::apps:readwrite"
}
cURLリクエストの例:
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=client_credentials&client_id=amzn1.application-oa2-client.<クライアントID>&client_secret=<クライアントシークレット>=appstore::apps:readwrite' https://api.amazon.com/auth/O2/token
2.レスポンスを保存する
レスポンスは、たとえば次のようになります。
{
"access_token": "Atc|MAEBI...",
"scope": "appstore::apps:readwrite",
"token_type": "bearer",
"expires_in": 3600
}
access_token
: アクセストークンexpires_in
: アクセストークンの有効期限が切れるまでの秒数scope
:appstore::apps:readwrite
(Reporting APIの場合はadx_reporting::appstore:marketer
)とします。token_type
: 常にbearer
とします。
3.エラーレスポンスを処理する
トークンリクエストでエラーが発生した場合、レスポンスのメッセージ本文には次のエラーメッセージのいずれかが含まれます。
エラーメッセージ本文 | 詳細 |
---|---|
{"error_description":"Client authentication failed", "error":"invalid_client"} | 無効なシークレットキー |
{"error_description":"The request has an invalid parameter : scope", "error":"invalid_scope"} | 無効な範囲の値 |
{"error_description":"The authorization grant type is not supported by the authorization server", "error":"unsupported_grant_type"} | 無効な認可グラントタイプ |
{"error_description":"The Content-Type is not supported by the authorization server", "error":"invalid_request"} | サポート対象外のContent-Type |