2017-10-08 17 views
0

AWS SDK 3.0を使用して、AWS SNSを介してインディアン番号のSMSを送信しています。私はec2インスタンスをAWS上に作成しました。AWS SNS SMS for Indian Numbers

$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); 

このコードは、SMSを送信している: 以下のコードを参照してください。ただし、SMSはTransactionalではなくPromotional SMSとして記録されています。したがって、午前9時から午後8時の間にのみ配信されます。

ご迷惑をおかけして申し訳ありません。

答えて

3

プログラミングロジックは問題ありません。スクリプトに入力ミスがあります。MessageAttributesMessageAttributeです。このタイプミスのために、あなたは渡しているメッセージの属性を無視していて、PromotionalであるセクションのSNS awsコンソールにdefault message typeが設定されています。

正しいコード:

$args = array(
    'MessageAttributes' => [ 
     'AWS.SNS.SMS.SenderID' => [ 
      'DataType' => 'String', 
      'StringValue' => 'Sender', 
     ], 
     'AWS.SNS.SMS.SMSType' => [ 
      'DataType' => 'String', 
      'StringValue' => 'Transactional', 
     ] 
    ], 
    "Message" => "Test Message", 
    "PhoneNumber" => "+91XXXXXX", 
    'MessageStructure' => 'string', 
); 
関連する問題