我正在编写一个代码,当它们超过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引用了电话号码
答案 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')