2015-10-25 153 views
-1

因此,我使用Amazons产品广告API并在我转身的地方获得SignatureDoesNotMatchThe签名无效

的问题不是我的代码,因为我一直在使用这个暂存< http://associates-amazon.s3.amazonaws.com/scratchpad/index.html>

是什么给了开始了吗?我已经像所有其他人一样在AWS中创建了一个凭证 - 我还需要做什么或为什么这只是失败?

完整的错误如下:

<?xml version="1.0"?> 
    <ItemLookupErrorResponse xmlns="http://ecs.amazonaws.com/doc/2011-08-01/"><Error> 
<Code>SignatureDoesNotMatch</Code> 
<Message>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.</Message> 
</Error> 
<RequestId>a89715b8-8e81-4d33-ad94-b85c92fb0631</RequestId></ItemLookupErrorResponse> 
+0

这有可能是输入参数,如'AWSAccessKeyId','AssociateTag' ...不按字母顺序在您的要求进行排序。 – vinayr

+0

是的,但暂存器(链接)正在整理所有内容。 – conor

+0

你是如何创建签名的? – vinayr

回答

1

我发现签名请求是痛苦的。我终于通过仔细阅读文档并使用Signed Requests Helper tool来完成工作。

文档 https://docs.aws.amazon.com/AWSECommerceService/latest/DG/prod-adv-api-dg.pdf 概述了从第55页开始的步骤。我的问题是获取url编码的权利。另外,正如vinayr提到的,参数必须按照特定的顺序(字节顺序,我认为)。

然而,可用的库使得一切都变得容易。我已经用了好几个礼拜了。它将XLM响应转换为保存所有数据并易于使用的对象。

最近我在这里回答了这个问题: https://stackoverflow.com/a/33617604/5543992