Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート
メインコンテンツへスキップ
ワンクリックアカウント情報共有の設定は、クイック定期購入フローにおける重要なステップです。ワンクリックアカウント情報共有では、ユーザーが最小限の労力でAmazonアカウントの情報をアプリと共有でき、手動でアカウントの詳細を入力する必要がありません。この機能により、ユーザーの登録エクスペリエンスが向上します。アプリでワンクリックアカウント情報共有機能を設定するには、以下のガイドを使用してください。

getUserDataの変更の実装

Get Access Token API

Appstore IAPには、アクセストークンを取得するためのGet Access Token REST APIが用意されています。このセクションでは、リクエスト、レスポンス、エラーについて説明します。

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

requestUserProfileAccess()のレスポンスと有効な認可コードを受け取ったアプリは、そのコードを使用してアクセストークンを取得できます。アクセストークンがあれば、クライアントはユーザープロフィールを読み取ることができます。 Get Access Token APIは、次の例に示すように、GETリクエストではなくPOSTリクエストを使用する必要があります。
次の表では、アクセストークンリクエストのパラメーターについて説明します。
リクエストパラメーター説明
grant_type必須。リクエストされたアクセスグラントのタイプ。authorization_codeを指定する必要があります。
code必須。requestUserProfileAccess()メソッドから返された認可コード。
client_id必須。クライアント識別子。
client_secret必須。登録時にクライアントに割り当てられたシークレット値。クライアントシークレットはウェブページに確実に保存できないため、ブラウザベースのアプリではクライアントシークレットを使用しないでください。

アクセストークンレスポンス

ユーザーデータにアクセスするには、Appstore IAPのGet User Profile APIにアクセストークンを提供する必要があります。アクセストークンは350文字以上の英数字のコードで、最大サイズは2,048バイトです。アクセストークンはAtza|という文字列で始まります。 レスポンスパラメーターは、application/jsonメディアタイプを使用してエンコードされます。詳細については、RFC4627(英語のみ)を参照してください。以下は、アクセストークンリクエストからのレスポンスの例です。
次の表では、アクセストークンレスポンスのパラメーターについて説明します。
レスポンスパラメーター説明
access_tokenユーザーアカウントのアクセストークン。最大サイズは2,048バイトです。
token_type返されたトークンのタイプ。値はbearerです。
expires_inアクセストークンが無効になるまでの秒数。
refresh_token新しいアクセストークンのリクエストに使用できるリフレッシュトークン。最大サイズは2,048バイトです。
アクセストークンはBearerトークンであり、別のクライアントでも使用できます。詳細については、The OAuth 2.0 Authorization Framework: Bearer Token Usage(英語のみ)を参照してください。

アクセストークンエラー

エラーによっては、認可サービスがHTTP 401 (Unauthorized)のステータスコードを返す場合があります。これには、クライアントが認可ヘッダーでclient_idとclient_secretの値を渡したものの、クライアントが認証されなかった場合などが該当します。 次の表では、失敗したレスポンスのエラーパラメーターについて説明します。
エラーパラメーター説明
errorエラーコード値を表すASCIIエラーコード。
error_descriptionクライアント開発者が判読できる形でエラーに関する情報を記載したASCII文字列。
request_idアクセストークンリクエストに関連付けられたID。
errorの値として次のエラーコードが返される可能性があります。
エラーコード説明
invalid_requestリクエストに必須パラメーターがない、値が無効、または形式に誤りがあります。
invalid_clientクライアントの認証に失敗しました。これは、認可サービスがHTTP 401 (Unauthorized)ステータスコードを返さない場合に使用されます。
invalid_grant認可コードが無効、期限切れ、取り消し済みであるか、または別のclient_idに対して発行されています。
unauthorized_client認可コードを使用する権限がクライアントにありません。原因として、code_verifierが無効である可能性があります。
unsupported_grant_typeクライアントが指定したtoken_typeに誤りがあります。
ServerErrorサーバーでランタイムエラーが発生しました。

Get User Profile API

Appstore IAPには、ユーザープロフィールデータを取得するためのGet User Profile REST APIが用意されています。このセクションでは、リクエスト、レスポンス、エラーについて説明します。

ユーザープロフィールのリクエスト

承認されたユーザープロフィールデータにアクセスするには、Get User Profile APIを使用してアクセストークンをAmazonアプリストアに送信します。Get User Profile APIは、HTTPS GETリクエストで、Get Access Token APIから受け取ったアクセストークンを唯一のパラメーターとして使用します。 次の例は、ユーザープロフィールデータを取得するGETリクエストを示しています。
リクエストパラメーター説明
access_token必須。Get Access Token APIから受け取ったアクセストークン。

ユーザープロフィールのレスポンス

アクセストークンが有効な場合は、次の例のように、HTTPレスポンスとしてユーザーのプロフィールデータがJSONで返されます。
プロフィールリクエストを処理できない場合は、HTTPエラーが返されます。このとき、次の例のように、詳細情報を含むJSONペイロードが返されることがあります。
次の表に、ユーザープロフィールリクエストが失敗した場合に返される可能性のあるエラーコードを示します。
HTTPステータスコードステータスメッセージ説明
200Successリクエストは成功しました。
400invalid_requestリクエストに必須パラメーターが含まれていないか、形式に誤りがあります。
400invalid_token提供されたアクセストークンは、期限切れ、取り消し済み、誤った形式であるか、その他の理由により無効です。
401insufficient_scope提供されたアクセストークンには必要なスコープへのアクセス権がありません。
500ServerErrorサーバーでランタイムエラーが発生しました。

アカウント設定に関するベストプラクティス

ユーザーのアカウントを設定するときは、以下のベストプラクティスに従ってください。
  • useIapUserData()フックのgetUserData()レスポンスに含まれるUserProfileAccessConsentStatusの値がCONSENTEDの場合は、次の操作を行います。
    • Appstore IAPのGet User Profile APIからユーザー情報を取得します。この情報を使用して、一時パスワードでログインアカウントを作成します。パスワードのリセットや追加情報をユーザーに要求することなく、ユーザーをアプリにサインインさせます。
    • 後で、パスワードをリセットするようにEメールでユーザーに通知します。
  • UserProfileAccessConsentStatusがUNAVAILABLEの場合は、アプリのデフォルトの登録エクスペリエンスをユーザーに表示します。

関連トピック


最終更新日 2026年10月26日