API認証
アプリのデータの一部をプログラムで管理、保守、アクセスできるようにするために、AmazonアプリストアにはいくつかのREST APIが用意されています。これらのAPIを使用するには、開発者コンソールでの認証と認可の構成が必要です。
このガイドを使用すると、次のAPIへのアクセスを設定できます。
これらのAPIへのアクセスを構成するには、まず開発者コンソールでセキュリティプロファイルを作成し、APIに関連付ける必要があります。次に、Login with Amazon APIを使用してアクセストークンをリクエストし、そのトークンを各APIリクエストのHTTPヘッダーに追加します。
APIへのアクセスを構成するには、まず開発者コンソールでセキュリティプロファイルを作成し、APIに関連付ける必要があります。次に、Login with Amazon APIを使用してアクセストークンをリクエストし、そのトークンを各APIリクエストのHTTPヘッダーに追加します。
セキュリティプロファイルの作成
APIを使用する前に、セキュリティプロファイルを作成する必要があります。セキュリティプロファイルは、APIへのアクセスに使用するアクセストークンを生成します。
セキュリティプロファイルを作成するには
- Amazon開発者コンソールのアカウントにログインします。
- 上部のナビゲーションから、[アプリ&サービス] > [APIアクセス] をクリックします。
-
APIの名前をクリックします。
この例はアプリ申請APIを示しています。 - [セキュリティプロファイルを新規作成] をクリックします。
- 新しいプロファイルの [セキュリティプロファイル名] と [セキュリティプロファイルの説明] を入力し、[保存] をクリックします。
- [ウェブ設定] タブから、クライアントIDとクライアントシークレットを保存します。APIにアクセスするには、この情報が必要です。
セキュリティプロファイルとAPIの関連付け
セキュリティプロファイルを作成したら、開発者コンソールでAPIに関連付ける必要があります。
セキュリティプロファイルをAPIに関連付けるには
- [アプリ&サービス] > [APIアクセス] をクリックして、[APIアクセス] ページに移動します。
- API名をクリックしてパネルを展開します。
- ドロップダウンリストから、前のセクションで作成したセキュリティプロファイルを選択します。
- [関連付ける] をクリックして、セキュリティプロファイルをこのAPIに関連付けます。[使用中のセキュリティプロファイル] パネルに、API名と、関連付けられたセキュリティプロファイルが追加されます。
これで、クライアントIDとクライアントシークレットを使用して、Login with Amazon(LWA)アクセストークンをリクエストできるようになりました。
LWAアクセストークンのリクエスト
クライアントIDとクライアントシークレットを取得したら、以下の手順に従って、Login with Amazon APIを使用してLogin with Amazonアクセストークンをリクエストします。
トークンリクエストを送信する
次のヘッダーとコンテンツを使用して、https://api.amazon.com/auth/o2/token
にPOST
リクエストを送信します。
- ヘッダー:
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
に設定します。
- アプリ申請APIでは、値を
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
- アプリ申請APIでは
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日