Invio di messaggi SMS in Amazon SNS con la versione 3 AWS SDK for PHP - AWS SDK for PHP

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Invio di messaggi SMS in Amazon SNS con la versione 3 AWS SDK for PHP

Puoi utilizzare Amazon Simple Notification Service (Amazon SNS) per inviare messaggi di testo o SMS a dispositivi dotati di SMS. Puoi inviare un messaggio direttamente a un numero di telefono oppure inviarlo a più numeri contemporaneamente sottoscrivendo quei numeri a un argomento e inviando il messaggio all'argomento.

Usa Amazon SNS per specificare le preferenze per la messaggistica SMS, ad esempio il modo in cui le consegne sono ottimizzate (in termini di costi o per una consegna affidabile), il limite di spesa mensile, il modo in cui vengono registrate le consegne dei messaggi e se abbonarsi ai report giornalieri sull'utilizzo degli SMS. Queste preferenze vengono recuperate e impostate come attributi SMS per Amazon SNS.

Quando invii un SMS, ricorda di specificare il numero di telefono utilizzando il formato E.164. E.164 è uno standard per la struttura del numero di telefono utilizzato per le telecomunicazioni internazionali. I numeri di telefono che seguono questo formato possono avere un massimo di 15 cifre e sono preceduti dal segno più (+) e dal prefisso del paese. Ad esempio, un numero di telefono negli Stati Uniti in formato E.164 verrà visualizzato come + 1001XXX5550100.

Gli esempi seguenti mostrano come:

Per ulteriori informazioni sull'uso di Amazon SNS, consulta Utilizzo di Amazon SNS per le notifiche utente con un numero di cellulare come abbonato (invio SMS).

Tutto il codice di esempio per AWS SDK for PHP è disponibile qui. GitHub

Credenziali

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto inCredenziali. Quindi importate il fileAWS SDK for PHP, come descritto inUtilizzo di base.

Ottieni gli attributi SMS

Per recuperare le impostazioni predefinite per i messaggi SMS, utilizza l'operazione GetSMSAttributes.

Questo esempio si riferisce all'attributo DefaultSMSType. Questo attributo consente di controllare se i messaggi SMS vengono inviati come Promotional per ottimizzare il recapito dei messaggi e permettere di contenere i costi, oppure come Transactional per ottimizzare il recapito dei messaggi e ottenere la massima affidabilità.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Codice di esempio

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->getSMSAttributes([ 'attributes' => ['DefaultSMSType'], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Imposta gli attributi SMS

Per aggiornare le impostazioni predefinite per i messaggi SMS, utilizza l'operazione SetSMSAttributes.

Questo esempio imposta l'attributo DefaultSMSType su Transactional, ottimizzando il recapito dei messaggi per ottenere la massima affidabilità.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Codice di esempio

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->SetSMSAttributes([ 'attributes' => [ 'DefaultSMSType' => 'Transactional', ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Controlla se un numero di telefono è stato disattivato

Per determinare se il proprietario di un determinato numero di telefono ha scelto di non ricevere messaggi SMS dal tuo account, utilizza l'CheckIfPhoneNumberIsOptedOutoperazione.

In questo esempio, il numero di telefono è in formato E.164, uno standard per le telecomunicazioni internazionali.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Codice di esempio

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $phone = '+1XXX5550100'; try { $result = $SnSclient->checkIfPhoneNumberIsOptedOut([ 'phoneNumber' => $phone, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Elenca i numeri di telefono che non sono stati accettati

Per recuperare un elenco di numeri di telefono a cui il proprietario ha scelto di non ricevere messaggi SMS dal tuo account, utilizza l'operazione. ListPhoneNumbersOptedOut

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Codice di esempio

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->listPhoneNumbersOptedOut(); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Pubblica su un messaggio di testo (messaggio SMS)

Per distribuire un messaggio di testo (messaggio SMS) direttamente a un numero di telefono, utilizzare l'operazione Publish.

In questo esempio, il numero di telefono è in formato E.164, uno standard per le telecomunicazioni internazionali.

I messaggi SMS possono contenere fino a 140 byte. Le dimensioni massime di una singola pubblicazione SMS sono di 1.600 byte.

Per ulteriori informazioni sull'invio di messaggi SMS, vedi Invio di un messaggio SMS.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Codice di esempio

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $message = 'This message is sent from a Amazon SNS code sample.'; $phone = '+1XXX5550100'; try { $result = $SnSclient->publish([ 'Message' => $message, 'PhoneNumber' => $phone, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }