调用aws web apis的问题

时间:2014-07-05 14:49:18

标签: amazon-web-services amazon-sns

我正在尝试使用GCM在我的移动应用程序中实施AWS Push通知。作为向AWS注册GCM令牌的一部分,我尝试使用API​​ [CreatePlatformEndpoint] http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html使用AWS创建端点。作为计算签名的一部分,我正在关注以下网站

http://docs.aws.amazon.com/general/latest/gr/signature-version-2.html#API_SignatureSampleCode

我使用以下代码为AWS创建签名版

http://docs.aws.amazon.com/AWSECommerceService/latest/DG/AuthJavaSampleSig2.html

我可以创建以下网址

http://sns.us-west-2.amazonaws.com/?AWSAccessKeyId=XXXXXXXXXXXXX&Action=CreatePlatformEndpoint&CustomUserData=Rajan&PlatformApplicationArn=arn%3Aaws%3Asns%3Aus-west-2%3A798120381702%3Aapp%2FGCM%2FAndroidMobilePushApp&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2014-07-04T18%3A35%3A27Z&Token=APA91bHKDGeNTMfCCdy1wetqxAu2yePhrkDb3KZIdYxJD1VoBnN4yh0CCw_WiAUd-MKM4eqjHixIswvMNMAa0FFByTeG0GcitHuqaP6IIMDiSvcbl-jV8jVoAjPufbWUEtDTA-0E8SmTacaLeBrZ-LCTzk65UOzsiunE75M-UalPro6p4bcSpj4&Version=2010-03-31&Signature=zPM6rDK9BhsaMLD5csiAqO6j30tVJ76Yy6FMcOzc4B4%3D%0A

这是我得到的回应。

<ErrorResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">
<Error>
<Type>Sender</Type>
<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>f00722e6-d9cb-5747-ab51-6ed62f2d6b75</RequestId>
</ErrorResponse>

有人可以指导错误是什么吗?

2 个答案:

答案 0 :(得分:0)

我认为你的签名结尾不应该有%0A。不知道从哪里得到它。

答案 1 :(得分:0)

经过大量调试后,我可以解决问题,问题非常简单:( ...

这不是POST请求。它必须只是一个GET请求。我不知道为什么文档会将其显示为POST请求。