2015-10-25 154 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