2016-10-26 21 views
0
 $accessKey = 'XZA...'; 
    $accessSecret = 'YKW...'; 
    $credentials = new Aws\Credentials\Credentials($accessKey, $accessSecret); 

    $sharedConfig = [ 
     'region' => 'us-east-1',   
     'version' => 'latest', 
     'credentials' => $credentials 
    ]; 

    $sdk = new Aws\Sdk($sharedConfig); 
    $sns = new SnsClient($sharedConfig); 

    $payload = [ 
     'PhoneNumber' => '+999999999', // E.164 format 
     'Message' => md5(time()), 
     'MessageAttributes' => [ 
      'DefaultSenderID' => ['DataType'=>'String','StringValue'=>'MyBrandName'], 
      'DefaultSMSType' => ['DataType'=>'String','StringValue'=>'Transactional'] 
     ] 
    ]; 

    try { 
     $data = $sns->publish($payload); 
     $MessageId = $data->get('MessageId'); 
    } catch (Exception $e) { } 

AWS-SDK-PHP - バージョン3.私は属性DefaultSenderIDウィッヒ除き、単一のSMSメッセージを送信していたときに上記のコードはうまく機能
モバイルデバイスにSMSを送信すると機能しません。アマゾンSNS - 私はPHP用AWS SDKを使用してい

アマゾンの説明書DefaultSenderID - ビジネスブランドなどの文字列で、受信側のデバイスに送信者として表示されます。送信者IDのサポートは国によって異なります。送信者IDは1〜11文字の英数字で、少なくとも1文字は含まれていなければなりません。

誰でもAmazon SNSを使用してこの問題が発生しましたか?

+0

あなたはあなたの完全なPHPファイルを追加することができ、スクリプト内の他の関数/メソッドはありますかスクリプトは現在、AWS SDKのファイルのいずれかを必要としていますか?それは完全なPHPファイルを追加することができます、それ以外の場合は解決された場合は、他の人にそれが解決され、問題を解決したことを知らせることができます。 – Birdy

+0

上記のコードで唯一欠けているのはrequire_once 'autoload..php'です。完全なスクリプトは上のコードです。そして問題は残っています... –

答えて

0

まだこれで苦労している人のために。

あなたはドキュメントhereを見れば、あなたはペイロードのMessageAttributesにキーAWS.SNS.SMS.SenderIDを追加する必要があることがわかります。

次は動作するはず

$payload = [ 
    'PhoneNumber' => '+999999999', // E.164 format 
    'Message' => md5(time()), 
    'MessageAttributes' => [ 
     'AWS.SNS.SMS.SenderID' => [ 
      'DataType' => 'String', 
      'StringValue' => 'YourSenderID', 
     ] 
    ] 
]; 

try { 
    $data = $sns->publish($payload); 
    $MessageId = $data->get('MessageId'); 
} catch (Exception $e) { } 
関連する問題