我正在使用AWSSDK3.0发送短信通过AWS SNS印度号码。我已经在AWS上创建了ec2实例。请参阅以下代码:
$params = array(
'credentials' => array(
'key' => 'XXXXXX',
'secret' => 'XXXXXXX',
),
'region' => 'us-west-2', // < your aws from SNS Topic region
'version' => 'latest',
'http' => [ 'verify' => false ]
);
$sns = new \Aws\Sns\SnsClient($params);
$args = array(
'MessageAttribute' => [
'AWS.SNS.SMS.SenderID' => [
'DataType' => 'String',
'StringValue' => 'Sender',
],
'AWS.SNS.SMS.SMSType' => [
'DataType' => 'String',
'StringValue' => 'Transactional',
]
],
"Message" => "Test Message",
"PhoneNumber" => "+91XXXXXX",
'MessageStructure' => 'string',
);
$result = $sns->publish($args);这段代码是在发送短信。然而,短信被记录为促销短信,而不是交易短信。因此,只在上午9点到晚上8点之间交货。
任何帮助都是非常感谢的。
发布于 2017-10-08 17:02:13
你的编程逻辑很好。你有一个错误--我是MessageAttributes,不是MessageAttribute。由于这个错误,它忽略了您要传递的消息属性,并在default message type控制台(也就是Promotional )中的Text messaging preferences部分中使用了Promotional集。
正确代码:
$args =数组( 'MessageAttributes‘=> [ 'AWS.SNS.SMS.SenderID’=> 'DataType‘=> 'String','StringValue’=> 'Sender','AWS.SNS.SMS.SMSType‘=> 'DataType’=> 'String','StringValue‘=>’事务性‘,],"Message“=> "Test Message”、"PhoneNumber“=> "+91XXXXXX”、“MessageStructure‘=>’string”);
https://stackoverflow.com/questions/46632399
复制相似问题