当前位置: 首页 > 知识库问答 >
问题:

使用boto通过AWS SNS发送SMS的示例脚本

纪俊良
2023-03-14

如何使用boto(或其他python|perl库)通过AWS SNS直接向手机号码发送短信?

约束:

  • 不使用 AWS 兰姆达函数
  • 无需使用SNS主题直接订阅手机号码

我的使用案例:使用 AWS 短信作为终端节点协议,使用 AWS SNS 从 Nagios 发送短信警报。

共有3个答案

东方富
2023-03-14

下面的脚本适用于我,只需替换脚本中定义为常量的所需参数。下面的脚本还处理多个收件人的批量短信

import json
import boto3
import os


ACCESS_KEY = <your key>
ACCESS_SECRET = <your secret>
AWS_REGION = <your region>

RECIPIENT_NUMBERS = [<recipient number list>]
SENDER_ID = <sender_id>
MESSAGE = <your message>

sns = boto3.client('sns', aws_access_key_id=ACCESS_KEY,
               aws_secret_access_key=ACCESS_SECRET,
               region_name=AWS_REGION)
for number in RECIPIENT_NUMBERS:
    response = sns.publish(
        PhoneNumber=number,
        Message=MESSAGE,
        MessageAttributes={
            'AWS.SNS.SMS.SenderID': {'DataType': 'String',
                                 'StringValue': SENDER_ID},
            'AWS.SNS.SMS.SMSType': {'DataType': 'String',
                                'StringValue': 'Promotional'}
        }
    )
    print(response)
吴胜涝
2023-03-14

只需在必填字段中替换,您将获得此工作。

import boto3
# Create an SNS client
client = boto3.client(
    "sns",
    aws_access_key_id="your_access_key_id",
    aws_secret_access_key="you_secret_access_key",
    region_name="us-east-1"
)

# Send your sms message.
client.publish(
    PhoneNumber="your_phone_number",
    Message="Hello World!"
)

要发送给多个联系人,请参阅此处

百里秋月
2023-03-14

下面是使用boto3通过SNS直接发布到电话号码的代码。如果您在电话号码参数方面出现错误,您需要升级您的版本boto。重要的是要记住,SNS目前支持直接发布到电话号码(PhoneNumber)或推送通知endpoint(targetArn)。还要注意,TopicArn、PhoneNumber和TargetArn都是互斥的,因此每次发布只能指定其中一个。

import boto3

sns_client = boto3.client('sns')

response = sns_client.publish(
    PhoneNumber='+12065551212', 
    Message='This is a test SMS message',
    #TopicArn='string', (Optional - can't be used with PhoneNumer)
    #TargetArn='string', (Optional - can't be used with PhoneNumer)
    #Subject='string', (Optional - not used with PhoneNumer)
    #MessageStructure='string' (Optional)
)

print(response)
 类似资料:
  • 我已成功发送多部分pdu短信, 问题是,当我试图将此SMS发送到不同网络上的号码时,它会给我以下错误: 请谁能告诉我我该怎么做。

  • 问题内容: 我想通过Web应用程序将SMS发送到手机,可以吗?我该怎么做? 问题答案: 您可以使用此免费的Java示例程序使用连接到计算机的GSM调制解调器将PC上的SMS发送到COM端口。您还需要从Sun下载并安装Java comm api。 该程序需要以下Java文件才能运行。 SerialConnection.java(此文件用于从Java程序连接到COM端口) SerialConnecti

  • 我似乎不能从Android应用程序调用这个类来通过我附带的sms APi发送sms。 我已经将我的调用附加到sender类,以便在我想通过按钮单击发送SMS时调用http类。纽扣纽扣;button=(button)findViewById(r.id.nobtn);Button.SetonClickListener(new View.onClickListener(){@override publi

  • 我是ruby和ruby on rails的新手,在设置Twilio发送短信时遇到了麻烦。

  • 问题内容: 我已经在项目中实现了推送通知,到目前为止一切正常。我尝试过通过Pusher发送通知,但效果很好。但是我必须通过PHP发送它们,但尚无法使用。我发现了许多有关如何实现此目标的旧解释,但似乎没有一个对我有用。 这就是我要使用的方法: 问题答案: 尝试使用此php脚本,确保.pem证书在运行时以与该php脚本相同的路径退出,并获得正确的设备令牌