【发布时间】:2021-03-16 13:30:07
【问题描述】:
我正在尝试通过 API 调用从 Postman 应用程序 的亚马逊卖家中心页面获取订单指标。我已按照文档中的所有步骤进行操作。 我使用开发人员中心页面上的刷新令牌对我的应用程序进行了自我授权。我能够使用刷新令牌生成访问令牌。向 api 发出请求以获取订单指标时,查询参数为: marketplaceIds:A21TJRUUN4KGV(印度) 间隔 : 2021-01-01T00:00:00-07:00--2021-09-04T00:00:00-07:00 粒度:天
此请求的 AWS 签名具有我在创建 IAM 用户时派生的访问密钥和秘密密钥。区域为 eu-west-1,服务名称为 execute-api。
在我通过的标题中 x-amz-access-token:Atza|IwExxxxxxx 用户代理:PostmanRuntime/7.26.8 主机:sellingpartnerapi-eu.amazon.com x-amz-date:发送请求时计算
发送请求后,我得到以下响应:
{
"errors": [
{
"message": "Access to requested resource is denied.",
"code": "Unauthorized",
"details": ""
}
]
}
403 Forbidden:请求合法但服务器拒绝响应。身份验证不会有任何影响。
我已向卖家中心支持记录了案例,但已经一个多月了,他们还没有回复。请告诉我应该添加或删除什么或检查什么才能使此请求生效。
【问题讨论】:
-
我有同样的问题,但我通过 aws 签名修复了它....但是得到了带有 200 响应代码的空有效负载。你对这个问题有什么想法吗? stackoverflow.com/questions/66869205/…
-
为什么要使用 Marketplaceids 和粒度?尽管在 swagger 2.0 文档中,请求有效负载只需要 orderId。
-
我不完全知道空负载的原因。我遇到过同样的情况,如果有请检查您传递的参数。您是否应用任何日期过滤器?我正在使用市场 ID 和粒度,因为在订单类别下,有不同类型的请求。您只传递订单 id 的方法是 getOrder,而上面提到的方法是 getOrderMetrics。还有更多,例如 getBuyerInfo、getOrderItems 等。您会在 swagger 文档中找到所有这些内容。
-
getOrderMetrics - github.com/amzn/selling-partner-api-docs/blob/main/references/… 在此链接上您可以查看详细信息。我检查了你的问题是否有空有效载荷。很抱歉,我不知道它为什么给出空有效载荷。
-
[嗨,我很努力地为 Google Sheet 解决这个问题,同样的授权错误,最后通过更改 IAM Policy 找到了解决方案。根据 Amazon 开发人员文档,他们指导创建新策略,但我建议您跳过该步骤并直接在 IAM 用户上添加内联策略。我知道这不是一个好习惯,但这一步解决了我的“授权”问题。创建 IAM 用户后。使用 IAM USER ARN 在开发者应用程序部分生成应用程序,并使用“授权”按钮从开发应用程序部分中创建的新应用程序生成刷新令牌。](stackoverfl
标签: amazon-mws amazonsellercentral amazon-marketplace