在python上发送SMS时,出现“ botocore.exceptions.ParamValidationError:参数验证失败”错误

时间:2020-01-22 10:18:34

标签: python sms boto3 amazon-sns

我正在编写一个代码,当它们超过200英镑时,它会从ATM发送文本消息,但是,当我运行代码时,我得到了错误消息

botocore.exceptions.ParamValidationError:参数验证失败: 输入中的未知参数:“ PhoneNumber”,必须为以下之一:TopicArn,TargetArn,Message,Subject,MessageStructure,MessageAttributes

我的代码是:

import boto3
client = boto3.client('sns','eu-west-1')
client.publish(PhoneNumber='+44XXXXXXXXXX', Message= 'Hello')

其中X引用了电话号码

2 个答案:

答案 0 :(得分:1)

我已经检查了您的Python代码段,并尽我所能确认您的代码和代码结构都没有问题。

从错误中发现,该问题与boto3版本有关,即您很可能使用了较旧的boto3版本,因此旧版本无法提取所需的参数"PhoneNumber"

解决步骤:

1。检查boto3的当前版本:

pip show boto3

>>> import boto3
>>> boto3.__version__

如果输出小于当前版本(1.11.9),则如下所示继续升级boto3版本。

2。升级您的boto3:

pip install botocore --upgrade
pip install boto3 --upgrade

注意:您需要注销以使更改生效

希望这会有所帮助!

答案 1 :(得分:0)

使用我的凭据和电话号码在本地运行此消息,不会出现任何问题-

import boto3

sns = boto3.client('sns', region_name='eu-west-1',
                   aws_access_key_id='xxxx',
                   aws_secret_access_key='xxxxx',
                   aws_session_token='xxxxx')
sns.publish(PhoneNumber='+44xxxxxxxxxx', Message= 'Hello')