2017-10-04 4 views
2

Ich versuche, aws SNS-Dienst zu lernen, SMS aus meiner Webanwendung zu senden. Ich arbeite an localhost.AWS SNS Ungültige Parameter Telefonnummer

$params = array(
    'credentials' => array(
     'key' => 'iam_key', 
     'secret' => 'iam_secret', 
    ), 
    'region' => 'ap-south-1', // < your aws from SNS Topic region 
    'version' => 'latest', 
    'http' => ['verify'=>false] 
); 
$sns = \Aws\Sns\SnsClient::factory($params); 

$msgattributes = [ 
     'AWS.SNS.SMS.SenderID' => [ 
      'DataType' => 'String', 
      'StringValue' => 'Klassroom', 
     ], 
     'AWS.SNS.SMS.SMSType' => [ 
      'DataType' => 'String', 
      'StringValue' => 'Transactional', 
     ] 
    ]; 

$payload = array(
     'Message' => "HK test", 
     "PhoneNumber" => "1234567890", 
     'MessageAttributes' => $msgattributes 
    ); 

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

Ich möchte SMS direkt auf Nummer senden. Dieser Code gibt diesen Fehler

Schwerwiegender Fehler: Uncaught Ausnahme "Aws \ Sns \ Exception \ SnsException" mit Nachricht "Fehler beim Ausführen" Publish "on" https://sns.ap-south-1.amazonaws.com "; AWS HTTP-Fehler: Client-Fehler: POST https://sns.ap-south-1.amazonaws.com führte zu einer 400 Bad Request Antwort: Absender InvalidPara (truncated...) InvalidParameter (client): Invalid parameter: PhoneNumber Reason: +1234567890 is not valid to publish to - Sender InvalidParameter Ungültiger Parameter: PhoneNumber Grund: +1234567890 ist nicht gültig für Veröffentlichung auf 13e181c2-a20f-5e77-9c8e-d38c55c50266 Ausnahme 'GuzzleHttp \ Exception \ ClientException' mit Nachricht ‚Client-Fehler: POST https://sns.ap-south-1.amazonaws.com ergab eine 400 Bad Request

ich weiß nicht, warum ....

+0

Ich würde vermuten, dass die Telefonnummer zuerst für SNS-Benachrichtigungen anmelden muss. – ceejayoz

+0

können wir nicht senden SMS direkt auf Nummer mit aws SNS-Dienst? –

Antwort

0

ich glaube, eine Telefonnummer für AWS hat den Ländercode enthalten.

Zum Beispiel, wenn meine Telefonnummer (999) 365-6721 ist, würde es +19993656721 (für USA) seine

+0

Ich habe das auch versucht, aber das funktioniert nicht –