開発者コンソール

API認証

API認証

アプリのデータの一部をプログラムで管理、保守、アクセスできるようにするために、AmazonアプリストアにはいくつかのREST APIが用意されています。これらのAPIを使用するには、開発者コンソールでの認証と認可の構成が必要です。

このガイドを使用すると、次のAPIへのアクセスを設定できます。

これらのAPIへのアクセスを構成するには、まず開発者コンソールでセキュリティプロファイルを作成し、APIに関連付ける必要があります。次に、Login with Amazon APIを使用してアクセストークンをリクエストし、そのトークンを各APIリクエストのHTTPヘッダーに追加します。

APIへのアクセスを構成するには、まず開発者コンソールでセキュリティプロファイルを作成し、APIに関連付ける必要があります。次に、Login with Amazon APIを使用してアクセストークンをリクエストし、そのトークンを各APIリクエストのHTTPヘッダーに追加します。

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

APIを使用する前に、セキュリティプロファイルを作成する必要があります。セキュリティプロファイルは、APIへのアクセスに使用するアクセストークンを生成します。

セキュリティプロファイルを作成するには

  1. Amazon開発者コンソールのアカウントにログインします。
  2. 上部のナビゲーションから、[アプリ&サービス] > [APIアクセス] をクリックします。
  3. APIの名前をクリックします。

    [APIアクセス] ページ
    この例はアプリ申請APIを示しています。
  4. [セキュリティプロファイルを新規作成] をクリックします。
  5. 新しいプロファイルの [セキュリティプロファイル名][セキュリティプロファイルの説明] を入力し、[保存] をクリックします。
  6. [ウェブ設定] タブから、クライアントIDとクライアントシークレットを保存します。APIにアクセスするには、この情報が必要です。
    クライアントIDとクライアントシークレット

セキュリティプロファイルとAPIの関連付け

セキュリティプロファイルを作成したら、開発者コンソールでAPIに関連付ける必要があります。

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

  1. [アプリ&サービス] > [APIアクセス] をクリックして、[APIアクセス] ページに移動します。
  2. API名をクリックしてパネルを展開します。
  3. ドロップダウンリストから、前のセクションで作成したセキュリティプロファイルを選択します。
  4. [関連付ける] をクリックして、セキュリティプロファイルをこのAPIに関連付けます。[使用中のセキュリティプロファイル] パネルに、API名と、関連付けられたセキュリティプロファイルが追加されます。
    セキュリティプロファイルを添付

これで、クライアントIDとクライアントシークレットを使用して、Login with Amazon(LWA)アクセストークンをリクエストできるようになりました。

LWAアクセストークンのリクエスト

クライアントIDとクライアントシークレットを取得したら、以下の手順に従って、Login with Amazon APIを使用してLogin with Amazonアクセストークンをリクエストします。

トークンリクエストを送信する

次のヘッダーとコンテンツを使用して、https://api.amazon.com/auth/o2/tokenPOSTリクエストを送信します。

  • ヘッダーContent-Type: application/x-www-form-urlencoded
  • コンテンツ
    • client_idセキュリティプロファイルの作成の最後の手順で保存したクライアントID。
    • client_secretセキュリティプロファイルの作成の最後の手順で保存したクライアントシークレット。
    • grant_type: 値をclient_credentialsに設定します。
    • scope
      • アプリ申請APIでは、値を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.<your-client-id>&client_secret=<クライアントシークレット>&scope=appstore::apps:readwrite' https://api.amazon.com/auth/O2/token

レスポンスを保存する

レスポンスの例を以下に示します。

{
    "access_token": "Atc|MAEBI...",
    "scope": "appstore::apps:readwrite",
    "token_type": "bearer",
    "expires_in": 3600
}
  • access_token: アクセストークン
  • expires_in: アクセストークンの有効期限が切れるまでの秒数
  • scope
    • アプリ申請APIではappstore::apps:readwrite
    • Reporting APIではadx_reporting::appstore:marketer
  • token_type: 常にbearer

エラーレスポンスを処理する

トークンリクエストでエラーが発生した場合、レスポンスのメッセージ本文には次のエラーメッセージのいずれかが含まれます。

エラーメッセージ本文 詳細
{"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

アクセストークンの使用方法

まず、アクセストークンを保存します。アクセストークンは、LWAアクセストークンのリクエストのレスポンスに含まれているaccess_tokenフィールドの値です。

APIにリクエストを送信するときは、AuthorizationヘッダーにBearer <アクセストークン>という値を設定します。アクセストークンは、「Atc|」で始まる長い文字列です。

cURLリクエストの例:

curl -v -X GET "<endpoint URL>"   -H  "Authorization: Bearer Atc|MAEBIKfsULrH7jSzvJTV8UmiHWr9M86O3JRmv4t1hqoCBriSMEP5Gsey_FiBxteZ8oxGd6abGuOFga8fwnMhmSD_Sg4MI4odXLPgB2IVs8M1uswjuWjnsMcvehpWvf9tzQT8HTWiBigInJLB8BrMg5J3O02hlTvcF441XxXDXthyj993COJ2u5swOTKjC_dcijiN8amuzrj32rh9Fr3CNgCpoZ0WqXnBhoHUVMYSOBV-owA5rI4-OfysXC71Zbtv1hb8igk"  

アクセストークンの有効期限が切れた場合は、LWAアクセストークンのリクエストの手順に従って新しいトークンを取得し、それを使用してリクエストを送信します。アクセストークンを最後にリクエストしてから1時間以上経過すると、403 Forbidden HTTPエラーとなり、「Request is not authorized(リクエストが認可されていません)」というメッセージが表示されるようになります。これは、アクセストークンの有効期限が切れたことを示します。


Last updated: 2025年5月22日