開発者コンソール

APIアクセス

APIアクセス

開発者コンソールのAPIを使用するには、セキュリティプロファイルを作成し、それを開発者コンソールのAPIに関連付ける必要があります。セキュリティプロファイルは、APIアクセス用のアクセストークンを生成するためのメカニズムです。

セキュリティプロファイルの作成方法

セキュリティプロファイルを作成するには、次の手順に従います。

  1. Amazon開発者コンソールアカウントにログインします。アカウントがない場合は、アカウントの作成を求められます。
  2. メインナビゲーションで、[アプリ&サービス] をクリックします。
  3. サブメニューで、[APIアクセス] を選択します。
  4. APIの名前をクリックします。

    [APIアクセス] ページ

  5. [セキュリティプロファイルを新規作成] ボタンをクリックします。
  6. 新しいプロファイルの [セキュリティプロファイル名][セキュリティプロファイルの説明] を入力し、[保存] をクリックします。
  7. [ウェブ設定] タブを開き、表示されているクライアントIDとクライアントシークレットを保存します。この情報はSales Reporting APIにアクセスする際に必要になります。
    クライアントIDとクライアントシークレット

セキュリティプロファイルをAPIに関連付ける方法

セキュリティプロファイルをAPIに関連付けるには、次の手順に従います。

  1. [APIアクセス] ページに戻ります。
  2. 先ほどクリックしたAPIの名前を再度クリックします。
  3. 新たに作成したセキュリティプロファイルをドロップダウンリストから選択します。
  4. [関連付ける] をクリックして、セキュリティプロファイルをこのAPIに関連付けます。API名と、関連付けられたセキュリティプロファイルが、[使用中のセキュリティプロファイル] パネルに追加されます。
    クライアントIDとクライアントシークレット

これで、クライアント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: アクセストークンの有効期限が切れるまでの秒数
  • scopeappstore::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