2016-08-03 8 views
7

Ich habe Probleme beim Durchsuchen der Dokumentation für Amazon AWS PHP-SDK.Senden von SMS mit Amazon AWS-Diensten PHP

Grundsätzlich muss ich nur eine Standard-Textnachricht an eine Nummer senden. Ich weiß, es ist möglich, weil Amazon können Sie Nachrichten über die Konsole über diesen Bildschirm direkt senden:

Amazon Console SMS

Es sagt etwas über die „veröffentlichen“ Methode verwenden, aber auf der Suche durch diese Dokumentation wirklich nicht bieten irgendwelche Antworten. #Publish documentation link

Jede Hilfe oder Anleitung wird geschätzt. Ich bin derzeit auf der Suche nach einer Lösung, die V2 des SDK verwendet.

Vielen Dank im Voraus.

+0

Wo genau sehen Sie bitte diesen Bildschirm? –

+0

Wenn Sie sich bei den AWS-Diensten anmelden, klicken Sie auf "Amazon SNS" und senden Sie eine Textnachricht von der Konsole. – Imperialized

Antwort

19

Nein, wo haben Sie ein Dokument, das es für die Verwendung mit PHP zeigt. Lesen der Java und C# sdk Ich schrieb die PHP-Version, die funktioniert.

Zuerst installieren aws/aws-sdk-php. Mit Musik:

composer require aws/aws-sdk-php

erstellen PHP-Datei mit:

require './vendor/autoload.php'; 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

$params = array(
    'credentials' => array(
     'key' => 'YOUR_KEY_HERE', 
     'secret' => 'YOUR_SECRET_HERE', 
    ), 
    'region' => 'us-east-1', // < your aws from SNS Topic region 
    'version' => 'latest' 
); 
$sns = new \Aws\Sns\SnsClient($params); 

$args = array(
    "SenderID" => "SenderName", 
    "SMSType" => "Transactional", 
    "Message" => "Hello World! Visit www.tiagogouvea.com.br!", 
    "PhoneNumber" => "FULL_PHONE_NUMBER" 
); 

$result = $sns->publish($args); 
echo "<pre>"; 
var_dump($result); 
echo "</pre>"; 

Das Ergebnis muss ein Array mit vielen Daten, einschließlich Meldungs.

+2

Obwohl ich Ihre Zeit und Mühe zu schätzen weiß, habe ich derzeit keinen Amazon Account, um dies zu testen. Seit der ersten Veröffentlichung (Zeitbeschränkungen, usw.) sind wir mit einem anderen SMS-Anbieter gegangen. Ich hätte das wieder löschen sollen, aber es könnte jemandem in der Zukunft helfen. Vielen Dank! – Imperialized

+0

Wie kann dies mit v2 des SDK getan werden? –

+0

@LesterPeabody Ich weiß es nicht. :( –

-3

Um die Aktion Veröffentlichen zum Senden einer Nachricht an einen mobilen Endpunkt zu verwenden, z. B. eine App auf einem Kindle-Gerät oder Mobiltelefon, müssen Sie die EndpointArn angeben.

$result = $client->publish(array(
    'TopicArn' => 'string', 
    'TargetArn' => 'string', 
    // Message is required 
    'Message' => 'string', 
    'Subject' => 'string', 
    'MessageStructure' => 'string', 
    'MessageAttributes' => array(
     // Associative array of custom 'String' key names 
     'String' => array(
      // DataType is required 
      'DataType' => 'string', 
      'StringValue' => 'string', 
      'BinaryValue' => 'string', 
     ), 
     // ... repeated 
    ), 
)); 
+0

Was ist EndpointArn? –

+0

EndpointArn ist der Wert des TargetArn. Wenn dieser Wert leer ist, dann Sie müssen einen Wert für die Telefonnummer oder TopicArn – Yun

+0

angeben. Bitte aktualisieren Sie Ihr Beispiel, um das Senden einer SMS an ein bestimmtes Mobiltelefon über die Telefonnummer zu bestätigen. –

1

Wenn Sie die AWS SDK-Version vor 3.0 verwenden, müssen Sie noch ein Thema erstellen und mit einem SMS-Typ abonnieren. Ab 3.0 können Sie SMS direkt an eine Nummer senden.