所以我正在使用亚马逊产品广告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 :(得分: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