亚马逊SNS服务短信只带请求包



我需要用Amazon SNS服务发送短信,但我只能使用请求包而不能使用boto3。

我就到这儿了。

import json
import requests
url = "https://sns.eu-central-1.amazonaws.com"
params = {
"Action": "Publish",
"Version": "2010-03-31",
"PhoneNumber": "+49123456789",
"Message": "Hello World!",
}
aws_access_key_id = "KEY"
aws_secret_access_key = "SECRET"

response = requests.post(url, data=params, auth=(aws_access_key_id, aws_secret_access_key), headers=headers)
print(response.text)

但是我得到:

<ErrorResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">
<Error>
<Type>Sender</Type>
<Code>MissingAuthenticationToken</Code>
<Message>Request is missing Authentication Token</Message>
</Error>
<RequestId>xxxxx</RequestId>
</ErrorResponse>

如何获得令牌?

对AWS的请求必须使用sigv4签名。要在Python中将其与请求一起使用,您可以利用requests-auth-aws-sigv4

最新更新