访问令牌
正如授权概览所述,成功调用亚马逊广告 API 需要广告主明确授权客户端应用程序访问广告主的数据和服务。
此授权过程由使用访问令牌的 Login with Amazon(LwA)服务进行处理。在对亚马逊广告 API 的任何调用中,访问令牌表示特定广告主同意特定客户端访问该广告主的数据和服务。
在下图中,客户端应用程序使用授权码从 Login with Amazon 服务器检索访问令牌:
访问令牌的有效期为 60 分钟。在此期间,访问令牌用作通过亚马逊广告 API 访问广告主资源的凭据。
授权服务器
访问令牌可以从以下三个地区的 Login with Amazon 主机中的任何一个获取:
地区 | 授权 URL |
---|---|
北美(NA) | https://api.amazon.com/auth/o2/token |
欧洲(EU) | https://api.amazon.co.uk/auth/o2/token |
远东(FE) | https://api.amazon.co.jp/auth/o2/token |
访问令牌全球有效。从上述任一主机检索到的访问令牌在任何地区都是亚马逊广告 API 的有效凭据。
检索访问令牌
要检索访问令牌,Login with Amazon 客户端应用程序提供客户端 ID、客户端密钥和以下内容之一:
- 一个授权码,由广告主通过授权过程生成。
- 通过先前成功的访问令牌请求检索到的刷新令牌。
有关识别 Login with Amazon 应用程序的客户端标识符和客户端密钥的分步说明,请参阅亚马逊提供的入门指导。
使用授权码检索访问令牌
要使用授权码检索访问令牌和刷新令牌,客户端使用以下查询参数调用 Login with Amazon 主机:
参数 | 说明 |
---|---|
grant_type | 必须为 authorization_code 。 |
code | 通过授权过程检索到的授权码。请注意,此代码将在 5 分钟后过期。 |
redirect_uri | 您的 Login with Amazon 账户中 Allowed Return URLs(允许的返回 URL)字段中的值之一。 |
client_id | Login with Amazon 账户的客户端 ID。 |
client_secret | Login with Amazon 账户的客户端密钥。 |
例如,要使用 cURL 检索访问令牌和刷新令牌,请将以下请求中的值替换为您指定的值:
curl \
-X POST \
--data "grant_type=authorization_code&code=AUTH_CODE&redirect_uri=YOUR_RETURN_URL&client_id=YOUR_CLIENT_ID&client_secret=YOUR_SECRET_KEY" \
https://api.amazon.com/auth/o2/token
注意
授权码将在 5 分钟后过期。检索访问令牌和刷新令牌时,一个授权码只能使用一次。
使用刷新令牌生成访问令牌
使用授权码检索到令牌后,可随时使用刷新令牌检索新的访问令牌。要使用刷新令牌,客户端使用以下参数调用 Login with Amazon 主机:
参数 | 说明 |
---|---|
grant_type | 必须为 refresh_token 。 |
refresh_token | 从成功的令牌请求返回的 refresh_token 值。 |
client_id | 您的 Login with Amazon 账户的客户端 ID。 |
client_secret | 您的 Login with Amazon 账户的客户端密钥。 |
例如,要使用 cURL 检索新的访问令牌,请将以下请求中的值替换为您指定的值:
curl \
-X POST \
--data "grant_type=refresh_token&client_id=YOUR_CLIENT_ID&refresh_token=YOUR_REFRESH_TOKEN&client_secret=YOUR_CLIENT_SECRET" \
https://api.amazon.com/auth/o2/token
注意
在授权的用户撤销授权之前,刷新令牌一直有效。使用刷新令牌发出成功请求后,将返回相同的刷新令牌以及一个新的访问令牌。
访问令牌响应
对成功令牌请求的响应是一个 JSON 对象,其架构如下:
字段 | 说明 |
---|---|
access_token | 访问令牌。 |
refresh_token | 刷新令牌。 |
token_type | OAuth 2.0 令牌的类型。请始终设置为 bearer 。 |
expires_in | 访问令牌过期之前的时间长度,以秒为单位。 |
例如:
{
"access_token": "Atza|XXXXXXXXXXXX",
"refresh_token": "Atzr|XXXXXXXXXXXX",
"token_type": "bearer",
"expires_in": 3600
}
请注意,访问令牌的有效期为 60 分钟。可以使用刷新令牌随时生成新的访问令牌。刷新令牌不会过期。
- 有关对 LwA 授权请求的错误响应的相关信息,请参阅访问令牌错误。
在亚马逊广告 API 中使用访问令牌
要成功调用亚马逊广告 API,Authorization
标头(header)中必须包含有效的访问令牌。令牌附加到字符串 "Bearer"
的后面,并作为单个字符串传递。
例如,访问令牌 "Atza|zZzZzZzZ"
将生成以下标头:
Authorization: "Bearer Atza|zZzZzZzZ"
- 有关亚马逊广告 API 中必需的授权标头的列表,请参阅授权概览。
访问令牌的概念
- 访问令牌使客户端应用程序能够通过亚马逊广告 API 访问特定广告主的数据和服务。
- 在向亚马逊广告 API 发出的任何请求中,必须在
Authorization
标头中包含当前访问令牌。 - 客户端可以使用以下任一方法检索给定广告主的访问令牌:
- 通过授权过程从广告主处检索到的授权码。
- 与之前成功的访问令牌请求一起返回的刷新令牌。
- 访问令牌的有效期为 60 分钟。
- 刷新令牌不会过期。
进一步了解
进一步了解本文档中各种概念的相关信息:
要遵循有关在亚马逊广告 API 中建立授权的分步指南,请参阅亚马逊广告入门指导。