認証コードは、1回限りのトークンです。access_tokenを取得するために使用すると、以下のaccess_tokenを取得するために使用できるrefresh_tokenを返します。次のセクションでは、最初のrefresh_tokenを取得する方法について説明します。
最初の要求
トークンを初めて要求する場合は、以下のものが必要です。
- アプリケーションセキュリティプロファイルのclient_id
- アプリケーションセキュリティプロファイルのclient_secret
- アプリケーションの登録済みredirect_uri
- 以前に作成されたアプリケーション認証コード
- 使用する grant_type
トークンを要求するには:
- client_id、client_secret、 authorization_code、grant_typeをURLエンコードされたフォームデータとして入力します。
- HTTPリクエストを行います。
authorization_codeからトークンを生成するCurlコマンドの例を以下に示します。curl --request POST \ --url https://api.amazon.com/auth/o2/token \ --header 'content-type: application/x-www-form-urlencoded' \ --data 'grant_type=authorization_code' \ --data 'code=ANxuOkcwmzUHvimjMTAX' --data 'client_id=amzn1.application-oa2-client.20534a91be57487e9c3547dada8a7394' \ --data 'client_secret=c007c411c9657dde807a11a96a3cfd8a2972f9599ac28de241675832f63cac05' \ --data 'redirect_uri=https://development.amazon.com/ap/ibatest'
access_tokenとrefresh_tokenの2つのトークンが返されます。{ "access_token": "Atza|IwEBIPSxTCdGGC-xL-ywFib_lJfg-D7d435Jw739GWa3xy6dHJxXqy2EwddQkIchiDNiqa4kFJ4iTv_ WcFCPoQ6qNvEIxlwDU9yxadZon9-fWh42Qt-hqB8kL6X1iFaDVsBjt3DSgfbe5DYOn_NCOF_r0Z0c3ArA1ft1g082lKYDC4Lo_qYy VhRO0yn3cMEjzvgmiSJREtAg69Ey_7bfbqFycIv4IrPd45RIEnrHR1ovac66U8zeqXMjV6MLE2I-Q_34BmSM3WfdT8DUFsoRtsoZi rFAXPZT5BLrUl4iVUsNF3hr8w4-JIw63VG8KpNlg8jsgB8VQUSJe-vhQfGvukIKAkeQ-iReWSd-_8f2XfhZlhNuBBNu0LnpeCPdu7 e7zJqzgZC3_oDE8wNDd89Z4qHn3fr7", "refresh_token": "Atzr|IwEBIDxSD_pLhlNA0Jn8UbGDhcsxEt70JizgXXXaITEwstKSsLO007_pNcQ13H6umgVcLvPiXthZL4 UJnHv8tYAqbVVnH7CUanaA4MDwY9JMf-CVHltiDYm7uv6lTuBIVe5IgXPvyctGyuu8SQxPtKEgejF0Iyoy_7uWZ8l185XU426Bw1U E7CfifWl8NE2a13WmBFZJTnvjj2hkwCEnTAvUDRYHW7inp7REnKMU66EeX36Vv5ZrPl2YAgZe3xwm2bFsC5v8ytY_sBX6nN79AJ7j -wYY4EehyCFBgYNqXLLUaGPA4IBFRw3UW5XwR2EJ-VSloGucgINgzIS9tCVK4qg_hkU-XTnuEFOm-P9M4bAvL5oGXQ", "token_type": "bearer", "expires_in": 3600 }
通常のトークンの要求
有効期間の短いトークンを新たに取得するための後続の各呼び出しでは、grant_typeのrefresh_tokenを使用し、refresh_tokenを含める必要があります。以下の手順は、アプリケーションで新しいセッションが開始されるたびに必要とされるものです。この手順では、refresh_tokenと既存のシークレットを組み合わせて使用し、有効期間の短いaccess_tokenを新たに発行します。
- client_id、client_secret、redirect_uri、authorization_code、grant_type をURLエンコードされたフォームデータとして入力します。
HTTPリクエストを行います(Curlまたはリファレンス実装アプリケーションのいずれかを使用)。
以下のCurlコマンドを使用して、更新トークンによりアクセストークンを生成します。curl --request POST \ --url https://api.amazon.com/auth/o2/token \ --header 'content-type: application/x-www-form-urlencoded' \ --data 'grant_type=refresh_token' \ --data 'client_id=amzn1.application-oa2-client.20534a91be57487e9c3547dada8a7394' \ --data 'client_secret=c007c411c9657dde807a11a96a3cfd8a2972f9599ac28de241675832f63cac05' \ --data 'refresh_token=Atzr|IwEBIPw8sQi6vSq67a0QeWDjRp4DJusAHG9kg-707e9PVbCbFTD3mU3H9ztkXppkSfeIgGsq d4zDnwr5y5hbFZvqyEQPsPRPNspT4cyWNhS6teaQsgyQa6CDTEejwYksDC4rQCi77p67zAkVzh6vHAuVJwkmaXH8IFFouRvR5gp qrffASpNv1eZwLTyqJzMNyU2CNJrIgurqJmByJN3u-smxLkshqMej0anoykw8qyNTmNxrzYRZJR2KdZLH6Kcw9mO41zHJKVWKi_ My4_bevVGd8viCGUeXeaRgOONI-GtGoQOZV7NwERLFkjT8Imw_yu4AeZ9lXEomFTy61RhieWvpxJmHNDb6MRuJcywFhx-h2fw1I jxP-W3J6HuVME69UMdapNkgk3bfgpWCsfkxDP3Qq1MddDkYvoTuJPAtqq12X4hvmlM1OZWsy8uG0Pckb9S3D1rh4g06pWcx-VaW GXQr2hbP58DWWQYIbLW-kZHD0eakoqNdrOtj56IMZZTz7RAPdmHiiHScDkgu6PyiBFBDBV7V'access_tokenとrefresh_tokenの2つのトークンが返されます。
{ "access_token": "Atza|IwEBIPSxTCdGGC-xL-ywFib_lJfg-D7d435Jw739GWa3xy6dHJxXqy2EwddQkIchiDNiqa4kFJ4iTv_ WcFCPoQ6qNvEIxlwDU9yxadZon9-fWh42Qt-hqB8kL6X1iFaDVsBjt3DSgfbe5DYOn_NCOF_r0Z0c3ArA1ft1g082lKYDC4Lo_qYy VhRO0yn3cMEjzvgmiSJREtAg69Ey_7bfbqFycIv4IrPd45RIEnrHR1ovac66U8zeqXMjV6MLE2I-Q_34BmSM3WfdT8DUFsoRtsoZi rFAXPZT5BLrUl4iVUsNF3hr8w4-JIw63VG8KpNlg8jsgB8VQUSJe-vhQfGvukIKAkeQ-iReWSd-_8f2XfhZlhNuBBNu0LnpeCPdu7 e7zJqzgZC3_oDE8wNDd89Z4qHn3fr7", "refresh_token": "Atzr|IwEBIDxSD_pLhlNA0Jn8UbGDhcsxEt70JizgXXXaITEwstKSsLO007_pNcQ13H6umgVcLvPiXthZL4 UJnHv8tYAqbVVnH7CUanaA4MDwY9JMf-CVHltiDYm7uv6lTuBIVe5IgXPvyctGyuu8SQxPtKEgejF0Iyoy_7uWZ8l185XU426Bw1U E7CfifWl8NE2a13WmBFZJTnvjj2hkwCEnTAvUDRYHW7inp7REnKMU66EeX36Vv5ZrPl2YAgZe3xwm2bFsC5v8ytY_sBX6nN79AJ7j -wYY4EehyCFBgYNqXLLUaGPA4IBFRw3UW5XwR2EJ-VSloGucgINgzIS9tCVK4qg_hkU-XTnuEFOm-P9M4bAvL5oGXQ", "token_type": "bearer", "expires_in": 3600 }
アクセストークンと更新トークン
access_token:この有効期間の短いトークンは、APIへのHTTPリクエストに含まれています。有効期間は短いですが、機密性が高いため共有しないでください。新しい access_token は簡単に生成できます。
refresh_token:この無期限トークンは、後続のすべてのトークンを要求するためにクライアントによって使用され、機密性も高いものです。アプリケーションのclient_id、client_secret と組み合わせると、refresh_tokenを使用して、より多くのaccess_tokenを作成できます。
注: OAuth2仕様では、使用するたびにrefresh_token を毎回変更することができます。Amazonの実装では常にそうであるとは限りませんが、いつでも変更の可能性があると想定し、この値には変更可能なシークレットストアを使用する必要があります。