连接到销售伙伴 API
如何连接到 SP-API。
您必须首先注册您的应用程序,并且必须获得销售伙伴授权,之后才能将该应用程序连接到销售伙伴 API。请参阅注册您的应用程序和授权销售伙伴 API 应用程序。
这些说明向您展示了调用销售伙伴 API 的步骤。有关构建销售伙伴 API URI 并向其添加标头的帮助,请参阅生成 Java 客户端库。有关更完整的解决方案(包括用于交换 LWA 令牌的代码),请参阅生成带有 LWA 令牌交换的 Java SDK。
步骤 1 . 请求“使用亚马逊账户登录”访问令牌
“使用亚马逊账户登录”(LWA) 访问令牌可授权您的应用程序代表销售伙伴执行某些操作。LWA 访问令牌会在发出后一小时过期。
Note about restricted operations. An LWA access token must be included in calls to all operations except restricted operations, which return Personally Identifiable Information (PII). When calling restricted operations, instead of including an LWA access token, you include a Restricted Data Token (RDT). For information about getting RDTs and calling restricted operations, refer to the Tokens API Use Case Guide.
要请求 LWA 访问令牌,请使用以下参数向 LWA 身份验证服务器 (https://api.amazon.com/auth/o2/token
) 发送安全的 HTTP POST 请求:
名称 | 描述 | 必填项 |
---|---|---|
grant_type | 请求的访问授权类型。值:
| 有帮助 |
refresh_token | LWA 刷新令牌。可在销售伙伴授权您的应用程序时获得此值。有关详细信息,请参阅授权销售伙伴 API 应用程序。 | 否。包括用于调用需要销售伙伴授权的操作的 refresh_token。如果包含 refresh_token,请不要包含 scope。 |
scope | LWA 授权范围。值:
| 否。包括 scope 以调用免授权操作。如果包括 scope,请不要包括 refresh_token。 |
client_id | 注册应用程序时获取此值。请参阅查看您的开发者信息。 | 有帮助 |
client_secret | 注册应用程序时获取此值。请参阅查看您的开发者信息。 | 有帮助 |
调用需要销售伙伴授权的操作示例:
POST /auth/o2/token HTTP/l.l
Host: api.amazon.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
grant_type=refresh_token
&refresh_token=Aztr|...
&client_id=foodev
&client_secret=Y76SDl2F
调用免授予操作的示例:
POST /auth/o2/token HTTP/l.l
Host: api.amazon.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
grant_type=client_credentials
&scope=sellingpartnerapi::notifications
&client_id=foodev
&client_secret=Y76SDl2F
提示:要避免在调用 LWA 授权服务器时出现不可信的证书颁发机构 (CA) 错误,请务必更新您的信任存储,以便您的应用程序信任 LWA 授权服务器。
响应
成功的响应包括以下值。
名称 | 描述 |
---|---|
access_token | LWA 访问令牌。最大大小:2048 字节。 |
token_type | 返回的令牌类型。必须是 bearer。 |
expires_in | LWA 访问令牌失效之前的秒数。 |
refresh_token | 您在请求中提交的 LWA 访问令牌。最大大小:2048 字节。 |
HTTP/l.l 200 OK
Content-Type: application/json;charset UTF-8
Cache-Control: no-store
Pragma:no-cache
{
"access_token":"Atza|IQEBLjAsAhRmHjNgHpi0U-Dme37rR6CuUpSREXAMPLE",
"token_type":"bearer",
"expires_in":3600,
"refresh_token":"Atzr|IQEBLzAtAhRPpMJxdwVz2Nn6f2y-tpJX2DeXEXAMPLE"
}
有关更多信息,请访问《使用亚马逊账户登录》文档中的授权代码授权页面。
步骤 2. 构建销售伙伴 API URI
以下是销售伙伴 API URI 的组件。
名称 | 描述 | 示例 |
---|---|---|
HTTP 方法 | HTTP 方法。 | GET |
端点 | 销售伙伴 API 端点。 | https://sellingpartnerapi-na.amazon.com |
Path | 销售伙伴 API 资源部分/版本号。 | /fba/inbound/v0/shipments/{shipmentId}/preorder/confirm |
查询字符串 | 查询参数。 | ?marketplace=ATVPDKIKX0DER |
路径参数 | 路径参数。 | shipmentId1 |
例如:
PUT https://sellingpartnerapi-na.amazon.com/fba/inbound/v0/shipments/shipmentId1/preorder/confirm?MarketplaceId=ATVPDKIKX0DER&NeedByDate=2020-10-10
步骤 3. 将标头添加到 URI
将标头添加到您在第 2 步:构建销售伙伴 API URI 中构建的 URI。以下是您在销售伙伴 API 的请求中包含的 HTTP 标头:
请求标头
名称 | 描述 |
---|---|
host | 商城端点。请参阅销售伙伴 API 端点。 |
x-amz-access-token | LWA 访问令牌。请参阅第 1 步:请求“使用亚马逊账户登录”访问令牌。 关于受限操作的说明。如果您要调用受限操作,请在此处传入受限数据令牌 (RDT),而不是 LWA 访问令牌。有关获取 RDT 和调用受限操作的信息,请参阅令牌 API 用例指南中的令牌 API 用例指南。 |
x-amz-date | 请求的日期和时间。 |
user-agent | 您的应用程序名称和版本号、平台和编程语言。这些内容可帮助亚马逊诊断和修复您可能遇到的服务问题。请参阅在所有请求中包含 User-Agent 标头。 |
以下是销售伙伴 API 的请求示例,其中包含 URI 和标头,但没有签名信息:
PUT /fba/inbound/v0/shipments/shipmentId1/preorder/confirm?MarketplaceId=ATVPDKIKX0DER&NeedByDate=2020-10-10 HTTP/1.1
host: sellingpartnerapi-na.amazon.com
user-agent: My Selling Tool/2.0 (Language=Java/1.8.0.221;
Platform=Windows/10)
x-amz-access-token=Atza|IQEBLjAsAhRmHjNgHpi0U-Dme37rR6CuUpSREXAMPLE
x-amz-date: 20190430T123600Z
8 天前更新