问题标签 [selling-partner-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何向 Amazon Selling Partner API GET 请求(例如 Restricted Data Token API)添加和散列 HTTP 正文?C#版本
我正在尝试调用 Amazon Selling Partner API Token API 来获取 RDT 令牌。我有一个正在向 Orders API 发出成功 GET 请求的工作程序,但对 Orders API 的 REST 请求仅包含标头和 URL 参数。令牌 API 请求还包含(另外)HTTP 正文,其中保存了受限资源列表。
亚马逊回复
在我的令牌 API 程序中。e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
是我问题的关键。这是哈希paylod(见下一个链接中的图片),它是来自初始标题集、URL 参数和正文内容的计算机。我的程序计算的哈希有效负载与亚马逊返回并接受没有正文的请求相同。但是亚马逊和我的程序的哈希有效负载对于带有正文的请求是不同的。因此,我得出结论,我的程序添加和散列正文与亚马逊不同,这就是亚马逊不接受我的令牌 API 请求的原因。
AWS - 真正的规范请求是什么?有很好的图片,如何计算对亚马逊服务的完整请求。
我正在计算并使用 C# 代码添加 HTTP 正文:
这是计算散列的 CanonicalRequest 字符串的代码:
所以,我失踪了,我不是在某个地方遵循亚马逊惯例,而是在哪里。有很多事情可能会变坏:1)也许restRequest.AddJsonBody(Serialize(request));
应该以不同的方式做;2)也许HashRequestBody
应该以不同的方式实现(我在互联网的某个地方找到了代码,或者是由 Swagger 从销售伙伴 API 规范生成的。
如何调整代码以生成与 Amazon 为同一请求(即用于计算且在计算之前被规范化的请求的一部分)计算的完全相同的哈希有效负载(对于带有正文的请求)散列有效载荷)。
selling-partner-api - Amazon Selling Partner API Reports API 是否需要与 Orders API 不同的用户/应用程序权限?
我有 .NET 应用程序,它成功地从 Amazon Selling Partner API Orders API 查询信息(执行那些不需要受限数据令牌 RDT 的请求)。但是,当我尝试使用相同的 LWA 令牌和用户令牌并请求签名代码来发出报告 API 请求时,我得到了 Amazon 响应:
拒绝访问请求的资源。未经授权
我的问题是 - Reports API 是否需要一些额外的角色、权限或其他配置,而不是 Orders API 的客户端所拥有的权限?例如,Token API 需要在应用开发者资料中请求额外的权限。
我的亚马逊用户的当前政策是:
Reports API 的代码是(没有详细说明某些程序的实现):
https://github.com/amzn/ selling-partner-api-docs/issues/52 表示亚马逊在 2020 年底邀请与用户支持私下讨论此类情况。但现在(2021.12)销售合作伙伴 API应该足够健壮...
amazon - MWS 报告不会从“_SUBMITTED_”更新报告请求状态
我已经使用 MWS 报告 API 几年了,今天发现了一个奇怪的状态,即请求的报告没有从“已提交”更改状态。
我使用_GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_
报告类型。
这份报告有什么更新吗?
由于亚马逊 MWS 支持并没有真正的帮助,我在这里提出一个问题。
感谢您的帮助。
php - 带有符号和标头“主机:”的 Amazon SP-API 问题不是有效的键 = 值对
Amazon SP API 这对我来说是新事物。
我想通过 SP API 连接以从我的拍卖中获取一些数据。
根据本指南,我需要完成 4 个步骤:
- 使用亚马逊访问令牌请求登录
- 构建销售伙伴 API URI
- 将标头添加到 URI
- 创建并签署您的请求
我的标题:
我的 URI
我已经完成了所有这些步骤,作为回应,我得到了它:
帮助我正确创建请求标头:)
amazon-web-services - aws,powershell和签名的麻烦
我想玩 Amazon Selling Partner API。从邮递员那里一切正常。从 Powershell 不是。
我试图从文档https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html和 python 示例中派生出我的 powershell 脚本。
我整天都在尝试,但我找不到解决方案。
我做了什么:
- 来自 Postman -> Works 的测试功能
- 阅读有关使用签名版本 4 签署 AWS 请求的信息 -> 确定
- 使用来自https://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html -> Works的测试输入了解签名密钥功能
- 尝试将 Python 示例翻译为 Powershell:https ://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html ->不起作用
- 使用 Google 从示例中找到解决方案并发现:http ://www.laurierhodes.info/?q=node/114 ->不起作用- 可能是因为它适用于 aws lambda
无论我做什么,我都会收到错误消息Sender SignatureDoesNotMatch
我附上了 Postman 的截图,它显示了来自这个端点的响应。我知道这是“拒绝访问”,它与亚马逊的示例非常接近。稍后,我需要发出 sts 请求以在每次通话中接收临时凭证,并且我还需要签署对亚马逊销售合作伙伴 API 的每次通话。
也许有人可以帮助我,好吗?我要疯了 :D
这是我的 Python 示例中的 Powershell 代码:https ://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html
我尝试了两种获取变体,
- 将 GET 与授权标头一起使用 (Python)
- 在查询字符串中使用带有身份验证信息的 GET (Python)
此代码来自 2nd -> Using GET with authentication information in the Query string
最好的问候,非常感谢帕特里克