亚马逊产品广告 API Scratchpad 不工作

Amazon Product Advertising API Scratchpad not working

所以我一直在亚马逊迷宫中与阴影战斗。去使用 Amazon Product Advertising API Scratchpad 来测试我的 Access Key IdSecret Access Key,以及输入 Associate Tag,它在 API 查询中没有被关键使用, 如果您想稍后为查询记分,这一点很重要。

无论我创建了多少次新密钥或在 AWS 管理控制台的下载部分为 root 用户验证它们,我一直收到以下错误 - IAM 用户无法在API貌似。

Error! SignatureDoesNotMatch HTTP Status 403: Forbidden The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

冲洗并重复。很多很多次。彻底的挫败感....

瞧瞧,我遇到了这个理智的绿洲 - Signed Request Helper - 它使用与上面使用的相同的键为我的查询提供了成功的结果。

那么,其他人能否确认 Scratchpad 的问题在其他应用程序(如 Signed Request Helper 或他们自己的代码)中没有得到证实?在这一点上,我敢打赌 Amazon Scratchpad 中存在错误。我想我会在 Python 中滚动一些东西来测试,但是 URL 结构的明显疯狂让我保持警惕。看来连亚马逊的人都弄错了,这太难了...

是的,这让我想起了我试图让签名恰到好处的黑暗日子。

当我开始玩 API 时,我也遇到了类似的麻烦。最终,我最终使用了主凭证。 This link 将在您登录后带您到正确的位置。打开 "Access Keys" 选项卡。这是我为签署请求创建了一个新的主访问密钥的区域。当你进入 users/groups/roles/policies 时,我遇到了麻烦。

但我那里有一把钥匙,我可以毫无问题地使用暂存器。我有一个使用密钥的应用程序 运行,但我只是去尝试了一个查询以确认一切都还好。

请注意,在便签本中,Associate Tag 与您所说的无关。要获得您遇到的错误,可以肯定的是 SECRET ACCESS KEY 不正确。如果您输入的访问密钥 ID 字段不正确,您将收到此错误:

Error! InvalidClientTokenId HTTP Status 403: Forbidden The AWS Access Key Id you provided does not exist in our records.

对于可能遇到此问题的其他人,让我分享一下我的发现。重要的是,我能够使用 Signed Request Helper but wasn't able to get the query to work in the Scratchpad 验证密钥。收到的错误清楚地告诉我是签名错误:

Error! SignatureDoesNotMatch HTTP Status 403: Forbidden The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

于是按照说明琢磨Secret Key和签名方法。既然用的是便签本,那肯定是钥匙。但是相同的密钥在签名的请求助手中有效!怎么办。

事实证明,错误出在所提供的参数之一中。如果暂存器生成带错误参数的带符号 url,则会导致该错误。正在进行一些验证,但您仍然可能会得到一个错误的参数。因此,如果您遇到上述错误,请尝试使用您的密钥进行简单查询以证明您的秘密访问密钥有效,然后开始调查您提供的参数值。