我指的是Alexa Top Sites Developer Guide並使用their sample codes, both PHP and Ruby。我收到以下錯誤SignatureDoesNotMatch
:Alexa Top Sites Service的AWS SignatureDoesNotMatch`響應
<?xml version="1.0"?>
<Response><Errors><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></Errors><RequestID>28c6b028-c4b6-66a2-f5d8-70d8dc21b8f8</RequestID>
</Response>
我嘗試了兩種不同的快捷鍵使用相同的用戶,並簽署了Alexa網絡信息服務,但沒有運氣。我在Mac OS 10.9和10.10上都嘗試了這些腳本,我的時間設置被設置爲自動更新。
在PHP代碼,這是生成簽名的一部分:我不知道我做錯了
/**
* Generates a signature per RFC 2104
*
* @param String $queryParams query parameters to use in creating signature
* @return String signature
*/
protected function generateSignature($queryParams) {
$sign = "GET\n" . strtolower(self::$ServiceHost) . "\n/\n". $queryParams;
echo "String to sign: \n" . $sign . "\n\n";
$sig = base64_encode(hash_hmac('sha256', $sign, $this->secretAccessKey, true));
return rawurlencode($sig);
}
。
切換到標籤[標籤:加密],沒有MAC標籤,簽名是*方法*簽名。 – 2014-12-02 08:17:13