使用 REST 通过 Amazon SNS 服务发送 SMS
Sending SMS via Amazon SNS service using REST
我正在尝试对此 AWS 请求进行跟进:
https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html
当你这样做时它会起作用 "as-is",但我正在尝试从该脚本发送短信,并继续收到 "signature mismatch" 响应(HTTP 403):
<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>a58398ba-74c1-5308-abbe-cfe97a28fc30</RequestId>
</ErrorResponse>
现在,我在(默认)Python 脚本中更改的只是这一部分(当然,没有公开我的 phone 号码):
method = 'GET'
service = 'sns'
host = 'sns.us-west-2.amazonaws.com'
region = 'us-west-2'
endpoint = 'https://sns.us-west-2.amazonaws.com'
request_parameters = 'Action=Publish&Message=TestSenderID&Version=2010-03-31&PhoneNumber=00123123123'
当然,还替换了访问密钥和秘密密钥。
但是,例如,当我通过 Postman 发出相同的请求时,它起作用了。这让我怀疑这个请求可能有什么问题,只使用默认的 Python 脚本。
有人帮忙吗?
知道了!
"request_parameters" 字符串有一个顺序,Version 应该放在最后。
Action=Publish&Message=Test&PhoneNumber=00123123123&Version=2010-03-31
如果以后有更多人被困在这个问题上,希望这对以后有所帮助。
我正在尝试对此 AWS 请求进行跟进: https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html
当你这样做时它会起作用 "as-is",但我正在尝试从该脚本发送短信,并继续收到 "signature mismatch" 响应(HTTP 403):
<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>a58398ba-74c1-5308-abbe-cfe97a28fc30</RequestId>
</ErrorResponse>
现在,我在(默认)Python 脚本中更改的只是这一部分(当然,没有公开我的 phone 号码):
method = 'GET'
service = 'sns'
host = 'sns.us-west-2.amazonaws.com'
region = 'us-west-2'
endpoint = 'https://sns.us-west-2.amazonaws.com'
request_parameters = 'Action=Publish&Message=TestSenderID&Version=2010-03-31&PhoneNumber=00123123123'
当然,还替换了访问密钥和秘密密钥。
但是,例如,当我通过 Postman 发出相同的请求时,它起作用了。这让我怀疑这个请求可能有什么问题,只使用默认的 Python 脚本。
有人帮忙吗?
知道了! "request_parameters" 字符串有一个顺序,Version 应该放在最后。
Action=Publish&Message=Test&PhoneNumber=00123123123&Version=2010-03-31
如果以后有更多人被困在这个问题上,希望这对以后有所帮助。