'SenderID'在Amazon SNS上发送短信(官方PHP SDK)

时间:2017-06-26 22:55:15

标签: php amazon-web-services amazon-sns

出于某种原因,SenderID似乎还原为NOTICE - 当我在代码中设置SenderID时,请参阅此处Amazon SNS - SMS Notice

当我退出SenderID变量时,它会作为默认设置发送 - 这很好,但我们偶尔会更改名称以用于不同用途。

我正在使用官方PHP SDK,代码如下:

$aws_cred = array(
    'credentials' => array(
        'key' => 'GOT THE KEY',
        'secret' => 'GOT THE SECRET',
    ),
    'region' => 'eu-west-1', // < your aws from SNS Topic region
    'version' => 'latest'
    );
    $sns = new \Aws\Sns\SnsClient($aws_cred);

    $args = array(
    "SenderID" => "MySendID",
    "SMSType" => "Promotional",
    "Message" => "Amazon y u do dis??",
    "PhoneNumber" => "+number"
    );

    $result = $sns->publish($args);

我要发送到英国(因此SID在那里工作),并且它也在11个字符的范围内。

有谁知道为什么会这样?

干杯

2 个答案:

答案 0 :(得分:2)

我找到了答案。

搜索系统最初没有实现,但最后,我找到了它。

QUOTE FROM:https://stackoverflow.com/a/43748448/7586984

  

我找到了解决方案。以这种方式设置args。它有效!

$args = array(
    'MessageAttributes' => [
          'AWS.SNS.SMS.SenderID' => [
               'DataType' => 'String',
               'StringValue' => 'YourSenderName'
        ]
     ],
      "SMSType" => "Transactional",
      "PhoneNumber" => "+87654321",
      "Message" => "Hello World!"
);

答案 1 :(得分:0)

  

(可选)对于发件人ID,键入最多包含11个的自定义ID   字母数字字符,包括至少一个字母和空格。   发件人ID在接收时显示为邮件发件人   设备。例如,您可以使用您的商业品牌来制作   消息来源更容易识别。

     

对发件人ID的支持因国家/地区而异。例如,消息   发送到美国的电话号码不会显示发件人ID。对于   支持发件人ID的国家/地区,请参阅支持的区域和   国家。

     

如果您未指定发件人ID,则邮件将显示长号   代码作为受支持国家/地区的发件人ID。对于那些国家   需要字母发送者ID,消息显示为NOTICE   发件人ID。

http://docs.aws.amazon.com/sns/latest/dg/sms_publish-to-phone.html

要说你不能使用空间(你有一个)并且它不会一直工作,这取决于国家和承运人,它不会在比它更多的地方工作