开发人员指南概述

亚马逊广告 API 概览

亚马逊广告 API 授权概述

访问亚马逊广告 API

亚马逊广告 API 提供对亚马逊广告数据和服务的程序化访问。与所有亚马逊用户一样,亚马逊广告客户可以控制对其数据的访问。因此,访问亚马逊广告 API 需要谨慎进行授权过程。

访问数据和服务

与基于 Web 的用户界面一样,亚马逊广告的广告主通过亚马逊登录方式(即电子邮件地址和密码)控制对其数据和服务的访问。指定的广告主必须明确授权其账户通过 API 进行访问。

访问 API

亚马逊广告使由 Login with Amazon (LwA) 管理的客户端应用程序 以调用 API。为了获得访问权限,客户端必须经过亚马逊广告的批准,而且已批准的客户端标识符是任何 API 调用所需的凭据。

广告主和客户端应用程序

上述的广告主和客户端应用程序这两个实体都必须参与,才能成功调用亚马逊广告 API。广告主必须首先授权客户端应用程序,然后客户端应用程序可以将结果凭据传递给 API,以访问该特定广告主的数据和服务。

账户和身份

每个亚马逊客户账户使用电子邮件地址作为其唯一密钥。单个用户账户可访问各种亚马逊服务,例如亚马逊广告或 Amazon Developer。如上所述,“广告主”有可能与管理客户端应用程序的亚马逊开发人员账户共享登录凭据(尽管不建议这样做)。

尽管如此,广告主必须明确授权客户端应用程序代表其访问 API,具体流程请参见下文。

授权流程

要了解广告主如何授权客户端应用程序,以及客户端应用程序如何将该授权呈现给 API,应考虑到在亚马逊广告 API 中身份验证和授权需遵循 OAuth 2.0 流程

OAuth 2.0

OAuth 2.0 旨在使第三方能够获得对与资源所有者相关的资源或服务的有限访问权限。

例如:

OAuth 概念图

在此图示中,客户端表示代表资源拥有者行事的第三方。客户端创建了一个请求,要求资源拥有者同意共享资源。此请求通常包含一个范围,用于定义所有者向其授予访问权限的资源和权限。

客户端获取代表资源拥有者同意的授权许可。然后,客户端将授权许可提交给授权服务器,授权服务器会响应一个访问令牌。访问令牌是一种通常有效期较短的凭据。

客户端将访问令牌传递给资源服务器,并且在访问令牌有效期间,具有访问资源拥有者数据和服务权限,该权限由范围定义。

亚马逊广告 API 中的 OAuth 2.0

亚马逊广告 API 中的授权遵循类似的概念流程。下图更详细地说明了这一点。

亚马逊广告 API 中的 OAuth 2.0

在亚马逊广告 API 中,授权服务器Login with Amazon提供。

客户端是一个具有相关客户端标识符客户端密钥的 Login with Amazon 应用程序。

资源拥有者是亚马逊广告主。通过访问与客户端标识符相关联的 URL,广告主可以使用 Login with Amazon 用户界面确认他们同意授权。

Login with Amazon 创建一个一次性的授权码,与广告主和客户端均相关联。然后,客户端将此授权码与客户端标识符和客户端密钥一起传递给 Login with Amazon,以检索一个访问令牌。客户端还会检索到一个刷新令牌,可用于生成新的访问令牌,而无需重复上述步骤。

客户端可以将访问令牌传递给亚马逊广告 API,以检索与授予同意的广告主关联的配置文件标识符。在亚马逊广告 API 中,配置文件表示广告主在特定站点中的账户。

客户端标识符、访问令牌和配置文件标识符用于通过亚马逊广告 API 访问广告主的数据和服务。

所需的授权标头

基于上述模式,每个对亚马逊广告 API 的请求都需要以下标头:

亚马逊广告 API 上几乎所有可用的资源还需要一个额外的标头:

如果未包含标头或标头不正确,将返回 401 Unauthorized 响应。如果在需要时未包含 Amazon-Advertising-API-Scope标头或标头不正确,将返回 401 Unauthorized400 Bad Request 响应。

关键授权概念

进一步了解

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

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