Envoyer des SMS sur Amazon SNS avec la version 3 AWS SDK for PHP - AWS SDK for PHP

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Envoyer des SMS sur Amazon SNS avec la version 3 AWS SDK for PHP

Vous pouvez utiliser Amazon Simple Notification Service (Amazon SNS) pour envoyer des SMS, ou des SMS, à des appareils compatibles SMS. Vous pouvez envoyer un message directement à un numéro de téléphone, ou vous pouvez envoyer un message à plusieurs numéros de téléphone simultanément en abonnant ces numéros de téléphone à une rubrique et en envoyant votre message à la rubrique.

Utilisez Amazon SNS pour définir vos préférences en matière de messagerie SMS, telles que la manière dont vos envois sont optimisés (en termes de coût ou de fiabilité), votre limite de dépenses mensuelles, la manière dont les envois de messages sont enregistrés et si vous souhaitez vous abonner aux rapports quotidiens d'utilisation des SMS. Ces préférences sont récupérées et définies sous forme d'attributs SMS pour Amazon SNS.

Lorsque vous envoyez un SMS, spécifiez le numéro de téléphone au format E.164. E.164 est une norme pour la structure des numéros de téléphone. Elle est utilisée pour les télécommunications internationales. Les numéros qui respectent ce format peuvent comporter 15 chiffres au maximum et commencent par le caractère plus (+) et le code pays. Par exemple, un numéro de téléphone américain au format E.164 apparaît sous la forme +1001XXX5550100.

Les exemples suivants montrent comment :

  • Récupérer les paramètres par défaut pour l’envoi de messages SMS à partir de votre compte à l’aide de GetSMSAttributes.

  • Mettre à jour les paramètres par défaut pour l’envoi de messages SMS à partir de votre compte à l’aide de SetSMSAttributes.

  • Découvrez si le propriétaire d'un numéro de téléphone donné a choisi de ne pas recevoir de SMS de votre compte via CheckIfPhoneNumberIS OptedOut.

  • Répertoriez les numéros de téléphone pour lesquels le propriétaire a choisi de ne pas recevoir de SMS de votre compte en utilisant ListPhoneNumberOptedOut.

  • Envoyer un message texte (SMS) directement à un numéro de téléphone à l’aide de Publish.

Pour plus d'informations sur l'utilisation d'Amazon SNS, consultez Utilisation d'Amazon SNS pour les notifications aux utilisateurs ayant un numéro de téléphone portable en tant qu'abonné (envoi de SMS).

Tous les exemples de code pour le AWS SDK for PHP sont disponibles ici GitHub.

Informations d’identification

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansInformations d'identification. Importez ensuite leAWS SDK for PHP, comme décrit dansUtilisation de base.

Obtenir les attributs des SMS

Pour récupérer les paramètres par défaut des messages SMS, utilisez l’opération GetSMSAttributes.

Cet exemple permet d’obtenir l’attribut DefaultSMSType. Cet attribut contrôle si les messages SMS sont envoyés en tant que Promotional, ce qui optimise la transmission des messages au plus bas coût ou en tant que Transactional, ce qui optimise la transmission des messages à une fiabilité optimale.

Importations

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

Exemple de code

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

Définir les attributs des SMS

Pour mettre à jour les paramètres par défaut des messages SMS, utilisez l’opération SetSMSAttributes.

Cet exemple définit l’attribut DefaultSMSType sur Transactional, ce qui optimise la transmission de message à une fiabilité optimale.

Importations

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

Exemple de code

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

Vérifiez si un numéro de téléphone s'est désinscrit

Pour déterminer si le propriétaire d'un numéro de téléphone donné a choisi de ne pas recevoir de SMS depuis votre compte, utilisez cette CheckIfPhoneNumberIsOptedOutopération.

Dans cet exemple, le numéro de téléphone est au format E.164, une norme internationale de télécommunications.

Importations

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

Exemple de code

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

Répertorier les numéros de téléphone désactivés

Pour récupérer la liste des numéros de téléphone pour lesquels le propriétaire a choisi de ne pas recevoir de SMS depuis votre compte, utilisez cette ListPhoneNumbersOptedOutopération.

Importations

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

Exemple de code

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

Publier dans un message texte (message SMS)

Pour diffuser un message texte (SMS) directement à un numéro de téléphone, utilisez l’opération Publish.

Dans cet exemple, le numéro de téléphone est au format E.164, une norme internationale de télécommunications.

Les messages SMS peuvent contenir jusqu’à 140 octets. La limite de taille pour une action de publication de SMS est de 1 600 octets.

Pour plus d’informations sur l’envoi de messages SMS, consultez la section Envoi d’un message SMS.

Importations

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

Exemple de code

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