如何使用Amazon SNS、Python和boto3发送带有自定义发件人ID的短信

如何使用Amazon SNS、Python和boto3发送带有自定义发件人ID的短信,python,amazon-web-services,sms,amazon-sns,boto3,Python,Amazon Web Services,Sms,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', 'StringVa

建议使用消息属性,但我似乎不知道使用什么属性名

到目前为止,这是有效的:

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

短信已发送,但在发件人id字段中有一些(随机?)值。因此,我的消息属性设置似乎被悄悄地忽略了。设置自定义发件人id的正确方法是什么?

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


如所述,某些国家/地区不允许您在短信中发送发件人ID。在本例中,API将获取您的号码并用字符串替换,以允许传递您的消息。试图解决这一问题通常只会将数字列入黑名单。您可以通过为您的测试仪ID输入一个简短的描述性字符串来测试这一点,并查看其是否成功。

发送者ID必须是1-11个字母数字字符,不带空格;例如:

  • THISISME
    -✅
  • TestForSO
    -✅
  • StackOverflow
    -那个电话号码是哪个国家的?@error2007s Germany我在尝试从控制台发送消息时也遇到同样的问题。无论我在发件人ID字段中写什么,我都会收到
    NEXMO\u SMS
    。这是一个bug吗?作为解决方法,您可以设置“DefaultSenderID”#/usr/bin/env python import boto3 s=boto3.Session(profile_name='Godzilla')sns=s.client('sns')sns.set_sms_attributes(attributes={'DefaultSenderID':'Godzilla',})response=sns.get_sms_attributes(attributes=['DefaultSenderID',])print(response)Hi Jossef我试过这么做,我得到了“无效参数:电话号码原因:+97250*******无效,无法发布到”。我将我的真实电话号码放在那里。请提供建议?将您的信息发送给我,我将帮助解决问题。jossef12@gmail.com