Getting a 'botocore.exceptions.ParamValidationError: Parameter validation failed' error when sending SMS on python

Getting a 'botocore.exceptions.ParamValidationError: Parameter validation failed' error when sending SMS on python

我正在研究一个代码,当 ATM 超过 200 英镑时,它会从 ATM 发送短信,但是,当我 运行 代码时,我收到错误消息

botocore.exceptions.ParamValidationError: Parameter validation failed: Unknown parameter in input: "PhoneNumber", must be one of: TopicArn, TargetArn, Message, Subject, MessageStructure, MessageAttributes

我的代码是:

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

其中 X 引用了一个 phone 数字

运行 这在本地使用我的凭据和 phone 号码,消息发送没有问题 -

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')

我已经检查了您的 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

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

希望对您有所帮助!