开发人员指南概述

亚马逊广告 API 概览

访问令牌

正如授权概览所述,成功调用亚马逊广告 API 需要广告主明确授权客户端应用程序访问广告主的数据和服务。

此授权过程由使用访问令牌的 Login with Amazon(LwA)服务进行处理。在对亚马逊广告 API 的任何调用中,访问令牌表示特定广告主同意特定客户端访问该广告主的数据和服务。

在下图中,客户端应用程序使用授权码从 Login with Amazon 服务器检索访问令牌:

亚马逊广告 API 中的 OAuth 2.0

访问令牌的有效期为 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 分钟。可以使用刷新令牌随时生成新的访问令牌。刷新令牌不会过期。

在亚马逊广告 API 中使用访问令牌

要成功调用亚马逊广告 API,Authorization 标头(header)中必须包含有效的访问令牌。令牌附加到字符串 "Bearer" 的后面,并作为单个字符串传递。

例如,访问令牌 "Atza|zZzZzZzZ" 将生成以下标头:

Authorization: "Bearer Atza|zZzZzZzZ"

访问令牌的概念

进一步了解

进一步了解本文档中各种概念的相关信息:

要遵循有关在亚马逊广告 API 中建立授权的分步指南,请参阅亚马逊广告入门指导