as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

テスト用アプリ申請API

テスト用アプリ申請API

テスト用アプリ申請APIは、Appstore DevTestへのアプリの登録とテスターの追加をプログラムから実行できるREST APIです。

APIを使用する前に、アクセス権を設定し、OAuthセッショントークンを取得する必要があります。このトークンを各APIリクエストのHTTPヘッダーに含めます。

ベースURL

テスト用アプリ申請APIのベースURLは、developer.amazon.com/api/appstoreです。

認証

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

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

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

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

  1. Amazon開発者コンソールのアカウントにログインします。
  2. 上部のナビゲーションから、[アプリ&サービス] > [APIアクセス] をクリックします。
  3. [アプリ申請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
  • コンテンツ

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: Always appstore::apps:readwrite.
  • 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(リクエストが認可されていません)」というメッセージが表示されるようになります。これは、アクセストークンの有効期限が切れたことを示します。

操作

テスト用アプリ申請APIには、次の操作が含まれています。

操作 HTTPメソッドとURI
アプリの登録 POST /{apiVersion}/applications/{appId}/devtest/register
テスターの追加 POST /{apiVersion}/applications/{appId}/tracks/{trackId}/testers

アプリの登録

アプリ内課金(IAP)用Appstore DevTestにアプリを登録します。

リクエスト

IAP用Appstore DevTestにアプリを登録するには、/{apiVersion}/applications/{appId}/devtest/registerエンドポイントにPOSTリクエストを送信します。リクエスト本文には、アプリのパッケージ名と、アプリの署名に使用する証明書を指定します。

リクエストの例

POST /{apiVersion}/applications/{appId}/devtest/register
Host: developer.amazon.com/api/appstore
Content-Type: application/json
Authorization: Bearer {access token}

リクエストパラメーター

パラメーター 指定場所 説明 必須
apiVersion パス APIのバージョン。現在はv1です。 文字列
appId パス アプリの識別子。たとえば、amzn1.devportal.mobileapp.dde7ec787b031584aa5f04606184041aのような文字列です。 文字列
access token ヘッダー LWAトークン 文字列

リクエスト本文の例

{
    "packageName": String,
    "certificate": String
}

リクエスト本文のプロパティ

パラメーター 説明 必須
packageName アプリのパッケージ名。 文字列
certificate アプリの署名に使用する証明書。 文字列

レスポンス

正常に完了すると、HTTP 200 OKと共に、trackIdがレスポンスで返されます。このIDをテスターの追加リクエストで使用します。エラーが発生した場合は、適切なHTTPステータスコードがレスポンスとして返され、エラーコードと人が判読できるメッセージがレスポンス本文に追加されます。

レスポンス本文の例

{
    "trackId": "devtest"
}

レスポンス本文のプロパティ

パラメーター 説明
trackId アプリのトラックを識別します。DevTestの場合、この値はdevtestになります。 文字列

HTTPステータスコード

ステータス 説明
200 OK アプリがDevTestに正常に登録されました。
404 Not Found 指定されたリソースが見つかりません。
400 Bad Request リクエスト本文の1つ以上のプロパティが無効であるか存在しないことを示します。

IAP用DevTestへのテスターの追加

IAPのテストのために、DevTest環境にテスターを追加します。

リクエスト

IAP用DevTestにテスターを追加するには、/{apiVersion}/applications/{appId}/tracks/{trackId}/testersエンドポイントにPOSTリクエストを送信します。リクエストには、登録時のレスポンスで返されたtrackIdを使用する必要があります。さらに、テスターの追加先となるテスターグループ名と、テスターの詳細も指定する必要があります。

リクエストの例

POST /{apiVersion}/applications/{appId}/tracks/{trackId}/testers
Host: developer.amazon.com/api/appstore
Content-Type: application/json
Authorization: Bearer {access token}

リクエストパラメーター

パラメーター 指定場所 説明 必須
apiVersion パス APIのバージョン。現在はv1です。 文字列
appId パス アプリの識別子。たとえば、amzn1.devportal.mobileapp.dde7ec787b031584aa5f04606184041aのような文字列です。 文字列
access token ヘッダー LWAトークン 文字列

リクエスト本文の例

{
    "groups": [{
        "name": String,
        "testers": [{
            "firstName": String,
            "lastName": String,
            "email": String
        }]
    }]
}

リクエスト本文のプロパティ

パラメーター 説明 必須
groups テスターグループのリスト。 List<TesterGroup>
name テスターグループの名前。 文字列
testers テスターのリスト。 List<Tester>
firstName テスターの名。 文字列 ×
lastName テスターの姓。 文字列 ×
email テスターのEメールアドレス。 文字列

レスポンス

正常に完了すると、HTTP 200 OKが返され、追加されたテスターグループのリストと、すべてのグループ間でのユニークテスターの数がレスポンスに含まれます。エラーが発生した場合は、適切なHTTPステータスコードがレスポンスとして返され、エラーコードと人が判読できるメッセージがレスポンス本文に追加されます。

レスポンス本文の例

{
    "groups": List<String>,
    "uniqueTesterCount" : Integer
}

レスポンス本文のプロパティ

パラメーター 説明
groups このアプリのDevTest登録に追加されたテスターグループ名のリスト。 List<String>
uniqueTesterCount テスターグループ全体で追加されたユニークテスターの数。 整数

HTTPステータスコード

ステータス 説明
200 OK テスターがアプリのDevTestに正常に追加されました。
404 Not Found 指定されたリソースが見つかりません。
400 Bad Request リクエスト本文の1つ以上のプロパティが無効であるか存在しないことを示します。

オブジェクト定義

テスト用アプリ申請APIでは、次のオブジェクトが使用されます。

TesterGroupオブジェクト

TesterGroupオブジェクトは、テスターグループの名前とテスターのリストを格納します。

{
    "name": String,
    "testers": [{
        "firstName": String,
        "lastName": String,
        "email": String
    }]
}
パラメーター 説明
name テスターグループの名前。 文字列
testers テスターのリスト。 List<Tester>

Testerオブジェクト

Testerオブジェクトは、テスターの詳細を格納します。

{
    "firstName": String,
    "lastName": String,
    "email": String
}
パラメーター 説明
firstName テスターの名。 文字列
lastName テスターの姓。 文字列
email テスターのEメールアドレス。 文字列

Last updated: 2025年9月30日