如何使用Amazon SNS和Python以及boto3发送带有自定义发件人ID的SMS

tga*_*gal 23 python sms amazon-web-services amazon-sns boto3

文件建议使用该消息属性,但我似乎无法找出什么属性名称使用.

这项工作到目前为止:

sns = boto3.client('sns', region_name='eu-west-1')

sns.publish(
  PhoneNumber='+491701234567',
  Message='hi there',
  MessageAttributes={
    'AWS.SNS.SMS.SenderID': {
      'DataType': 'String',
      'StringValue': 'MySenderID'   
    }    
  }   
)  
Run Code Online (Sandbox Code Playgroud)

SMS已发送,但发件人ID字段中包含一些(随机?)值.所以我的消息属性设置似乎被忽略了.设置自定义发件人ID的正确方法是什么?

Jos*_*ush 7

发件人 ID 必须为 1-11 个字母数字字符,不得有空格;例如:

\n\n
    \n
  • THISISME- \xe2\x9c\x85
  • \n
  • TestForSO- \xe2\x9c\x85
  • \n
  • StackOverflow-(太长。最多 11 个字符)
  • \n
  • Some one- (没有空间)
  • \n
\n\n

正如其他人提到的,发件人 ID 自定义取决于国家/手机提供商,因此请务必对其进行测试。

\n\n

示例片段

\n\n
import boto3\n\naccess_key = \'....\'\nsecret = \'....\'\nregion = "us-east-1"\n\nnumber = \'+972...<your number>\'\n\nsender_id = \'TestForSO\'\nsms_message = \'Your code: 123456\'\n\nsns = boto3.client(\'sns\', aws_access_key_id=access_key, aws_secret_access_key=secret, region_name=region)\nsns.publish(PhoneNumber=number, Message=sms_message, MessageAttributes={\'AWS.SNS.SMS.SenderID\': {\'DataType\': \'String\', \'StringValue\': sender_id}, \'AWS.SNS.SMS.SMSType\': {\'DataType\': \'String\', \'StringValue\': \'Promotional\'}})\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

在此输入图像描述

\n
\n


Ada*_*zyk 5

检查您的目的地国家/地区是否支持发件人 ID

http://docs.aws.amazon.com/sns/latest/dg/sms_supported-countries.html