开发者控制台

API身份验证

API身份验证

为了以编程方式管理、维护和访问应用的某些数据,亚马逊应用商店提供了多个REST API。需要在开发者控制台中对这些API进行配置才能进行身份验证和授权。

您可以使用本指南设置以下API的访问权限:

要配置对其中一个API的访问权限,必须先在开发者控制台中创建安全配置文件并将其与该API关联。然后,使用Login with Amazon API请求访问令牌,并将该令牌添加到每个API请求中的HTTP标头。

要配置对API的访问权限,必须先在开发者控制台中创建安全配置文件并将其与该API关联。然后,使用Login with Amazon API请求访问令牌,并将该令牌添加到每个API请求中的HTTP标头。

创建安全配置文件

在使用API之前,必须创建安全配置文件。安全配置文件会生成访问令牌,您可以使用该令牌来访问API。

创建安全配置文件

  1. 登录亚马逊开发者控制台账户。
  2. 在顶部导航栏中,选择应用与服务 > API访问
  3. 选择API的名称。

    “API访问”页面
    此示例显示了应用提交API
  4. 单击创建新的安全配置文件
  5. 针对新配置文件输入安全配置文件名称和安全配置文件描述,然后单击保存
  6. Web设置选项卡中,保存客户端ID和客户端密钥,因为访问API时需要这些信息。
    客户端ID和客户端密钥

将安全配置文件与API关联

创建安全配置文件后,必须将其与开发者控制台中的API关联。

将安全配置文件与API关联

  1. 选择应用与服务 > API访问,导航到API访问页面。
  2. 单击API名称,展开面板。
  3. 从下拉列表中选择您在上一部分中创建的安全配置文件。
  4. 选择附加以将安全配置文件与此API关联。API名称和附加的安全配置文件将添加到Security Profile(s) in use(使用中的安全配置文件)面板。
    附上安全配置文件

现在可以使用客户端ID和客户端密钥请求Login With Amazon (LWA) 访问令牌。

请求LWA访问令牌

获取客户端ID和客户端密钥后,按照以下步骤使用Login With Amazon API请求Login with Amazon访问令牌。

发送令牌请求

POST请求发送到https://api.amazon.com/auth/o2/token,其中包含以下标头和内容:

  • 标头Content-Type: application/x-www-form-urlencoded
  • 内容
    • client_id: 您在创建安全配置文件的最后步骤中保存的客户端ID。
    • client_secret: 您在创建安全配置文件的最后步骤中保存的客户端密钥。
    • grant_type: 设置为client_credentials
    • scope
      • 对于应用提交API,将该值设置为appstore::apps:readwrite
      • 对于报告API,将其设置为adx_reporting::appstore:marketer

示例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.<客户端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
    • 对于应用提交API为:appstore::apps:readwrite
    • 对于报告API为:adx_reporting::appstore:marketer
  • 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 "<终端节点的URL>"   -H  "Authorization: Bearer Atc|MAEBIKfsULrH7jSzvJTV8UmiHWr9M86O3JRmv4t1hqoCBriSMEP5Gsey_FiBxteZ8oxGd6abGuOFga8fwnMhmSD_Sg4MI4odXLPgB2IVs8M1uswjuWjnsMcvehpWvf9tzQT8HTWiBigInJLB8BrMg5J3O02hlTvcF441XxXDXthyj993COJ2u5swOTKjC_dcijiN8amuzrj32rh9Fr3CNgCpoZ0WqXnBhoHUVMYSOBV-owA5rI4-OfysXC71Zbtv1hb8igk"  

访问令牌到期后,请按照请求LWA访问令牌中的步骤获取新访问令牌,并开始在您的请求中使用新访问令牌。如果您自上次请求访问令牌以来已超过一个小时,并且您开始收到403 Forbidden HTTP错误以及消息“Request is not authorized”(请求未获得授权),则可以确定访问令牌已到期。


Last updated: 2025年5月22日