亚马逊产品广告API Scratchpad无法正常工作

时间:2016-01-28 08:30:52

标签: api amazon-web-services digital-signature

所以我刚刚在亚马逊迷宫中与阴影斗争。我们不得不使用Amazon Product Advertising API Scratchpad来测试我的Access Key IdSecret Access Key,以及输入API查询中未经批判使用的Associate Tag,这一点非常重要您希望以后获得该查询的信用。

我不断收到以下错误,无论我去了多少次并创建了一组新密钥或在AWS管理控制台的下载部分为root用户验证了这些错误 - IAM用户无法在API中工作看似。

  

错误! SignatureDoesNotMatch   HTTP状态403:禁止   我们计算的请求签名与您提供的签名不匹配。检查您的AWS Secret Access Key和签名方法。有关详细信息,请参阅服务文档。

冲洗并重复。很多次。完全和彻底的沮丧....

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

那么,是否有其他人可以确认Scratchpad在其他应用程序中没有出现的问题,例如签名请求助手或他们自己的代码?在这一点上,我打赌亚马逊Scratchpad中存在一个错误。我想我会用Python来测试一些东西,但URL构造的明显疯狂让我很谨慎。看起来即使亚马逊的家伙弄错了也太难了......

2 个答案:

答案 0 :(得分:1)

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

当我开始使用API​​时,我也有类似的麻烦。最终,我最终使用了主凭据。登录后,This link会将您带到正确的位置。打开"访问键"标签。这是我为签名请求创建了一个新的主访问密钥的区域。当你进入用户/组/角色/政策时,我遇到了麻烦。

但是我有一把钥匙,我可以使用暂存器没问题。我有一个运行的应用程序使用密钥,但我只是去尝试查询以确认它仍然很好。

请注意,在暂存器中,Associate Tag与您说的无关。为了得到你所犯的错误,确保SECRET ACCESS KEY不正确。如果您错误地输入了ACCESS KEY ID字段,则会出现此错误:

  

错误! InvalidClientTokenId HTTP状态403:禁止AWS Access   您提供的密钥ID在我们的记录中不存在。

答案 1 :(得分:0)

对于可能遇到此事的其他人,让我传授我的发现。重要的是,我能够使用Signed Request Helper验证密钥,但无法让查询在Scratchpad中运行。收到的错误清楚地告诉我,签名是错误的:

  

错误! SignatureDoesNotMatch HTTP状态403:禁止我们计算的请求签名与您提供的签名不匹配。检查您的AWS Secret Access Key和签名方法。有关详细信息,请参阅服务文档。

因此,按照指示,对密钥和签名方法进行思考。由于一个人使用暂存器,它必须是关键。但是相同的密钥在签名的请求帮助程序中起作用!怎么做。

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