Invio di messaggi SMS in Amazon SNS con ilAWS SDK for PHPVersione 3 - 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 ilAWS SDK for PHPVersione 3

Puoi utilizzare Amazon Simple Notification Service (Amazon SNS) per inviare messaggi SMS a dispositivi abilitati. 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.

Con Amazon SNS puoi specificare le preferenze per la messaggistica SMS, ad esempio il modo in cui ottimizzare le consegne (per costo o affidabilità), il limite di spesa mensile, la registrazione delle consegne dei messaggi e se eseguire la sottoscrizione a report di utilizzo di SMS giornalieri. 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:

  • Recupera le impostazioni predefinite per l'invio di messaggi SMS dal tuo account utilizzando GetSMSAttributes.

  • Aggiorna le impostazioni predefinite per l'invio di messaggi SMS dal tuo account utilizzando SetSMSAttributes.

  • Scopri se il proprietario di un determinato numero di telefono ha scelto di non ricevere messaggi SMS dal tuo account utilizzando CheckIfPhoneNumberISOptedOut.

  • Elenca i numeri di telefono in cui il proprietario ha scelto di non ricevere messaggi SMS dal tuo account utilizzando ListPhoneNumberOptedOut.

  • Invia un messaggio di testo SMS (messaggio) direttamente a un numero di telefono utilizzando Publish.

Per ulteriori informazioni sull'utilizzo di Amazon SNS, consultaUtilizzo di Amazon SNS per le notifiche utente con un numero di cellulare come sottoscrittore (Invia SMS).

La versione integrale del codice di esempio di AWS SDK for PHP è disponibile qui su GitHub.

Credenziali

Prima di eseguire il codice di esempio, configura ilAWScredenziali, come descritto inImpostazione delle credenziali . Quindi importaAWS SDK for PHPcome descritto inUtilizzo di base.

Ottieni gli attributi degli 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\Sns\SnsClient; use Aws\Exception\AwsException;

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 degli 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\Sns\SnsClient; use Aws\Exception\AwsException;

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 stabilire se un determinato numero di telefono ha scelto di non ricevere messaggi SMS dal tuo account, utilizza l'operazione CheckIfPhoneNumberISOptedOut.

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

Importazioni

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

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 esclusi

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

Importazioni

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

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()); }

Pubblicazione 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\Sns\SnsClient; use Aws\Exception\AwsException;

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()); }