Gestion des abonnements dans Amazon SNS avec AWS SDK for PHP la version 3 - 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.

Gestion des abonnements dans Amazon SNS avec AWS SDK for PHP la version 3

Utilisez les rubriques Amazon Simple Notification Service (Amazon SNS) pour envoyer des notifications à Amazon Simple Queue Service (Amazon SQS), HTTP/HTTPS, adresses e-mail, () ou. AWS Server Migration Service AWS SMS AWS Lambda

Les abonnements sont attachés à une rubrique qui gère l’envoi de messages aux abonnés. Pour en savoir plus sur la création de rubriques, consultez la section Gestion des rubriques dans Amazon SNS avec la AWS SDK for PHP version 3.

Les exemples suivants montrent comment :

Pour plus d'informations sur l'utilisation d'Amazon SNS, consultez Utilisation d'Amazon SNS pour la messagerie système à système.

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.

Abonner une adresse e-mail à une rubrique

Pour lancer un abonnement à une adresse e-mail, utilisez l’opération Subscribe.

Vous pouvez utiliser la méthode subscribe pour abonner plusieurs points de terminaison différents à une rubrique Amazon SNS, en fonction des valeurs utilisées pour les paramètres transmis. Cette action est présentée dans d’autres exemples de cette rubrique.

Dans cet exemple, le point de terminaison est une adresse e-mail. Un jeton de confirmation est envoyé à cette adresse e-mail. Vérifiez l’abonnement avec ce jeton de confirmation dans un délai de trois jours à compter de la réception.

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' ]); $protocol = 'email'; $endpoint = 'sample@example.com'; $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->subscribe([ 'Protocol' => $protocol, 'Endpoint' => $endpoint, 'ReturnSubscriptionArn' => true, 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Abonnement d'un point de terminaison d'application à une rubrique

Pour lancer un abonnement à une application Web, utilisez l’opération Subscribe.

Vous pouvez utiliser la méthode subscribe pour abonner plusieurs points de terminaison différents à une rubrique Amazon SNS, en fonction des valeurs utilisées pour les paramètres transmis. Cette action est présentée dans d’autres exemples de cette rubrique.

Dans cet exemple, le point de terminaison est une URL. Un jeton de confirmation est envoyé à cette adresse Web. Vérifiez l’abonnement avec ce jeton de confirmation dans un délai de trois jours à compter de la réception.

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' ]); $protocol = 'https'; $endpoint = 'https://'; $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->subscribe([ 'Protocol' => $protocol, 'Endpoint' => $endpoint, 'ReturnSubscriptionArn' => true, 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Abonner une fonction Lambda à une rubrique

Pour initier un abonnement à une fonction Lambda, utilisez l'opération Subscribe.

Vous pouvez utiliser la méthode subscribe pour abonner plusieurs points de terminaison différents à une rubrique Amazon SNS, en fonction des valeurs utilisées pour les paramètres transmis. Cette action est présentée dans d’autres exemples de cette rubrique.

Dans cet exemple, le point de terminaison est une fonction Lambda. Un jeton de confirmation est envoyé à cette fonction Lambda. Vérifiez l’abonnement avec ce jeton de confirmation dans un délai de trois jours à compter de la réception.

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' ]); $protocol = 'lambda'; $endpoint = 'arn:aws:lambda:us-east-1:123456789023:function:messageStore'; $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->subscribe([ 'Protocol' => $protocol, 'Endpoint' => $endpoint, 'ReturnSubscriptionArn' => true, 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Abonnement d'un SMS à un sujet

Pour envoyer des messages SMS à plusieurs numéros de téléphone en même temps, abonnez chaque numéro à une rubrique.

Pour lancer un abonnement à un numéro de téléphone, utilisez l’opération Subscribe.

Vous pouvez utiliser la méthode subscribe pour abonner plusieurs points de terminaison différents à une rubrique Amazon SNS, en fonction des valeurs utilisées pour les paramètres transmis. Cette action est présentée dans d’autres exemples de cette rubrique.

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

Un jeton de confirmation est envoyé à ce numéro de téléphone. Vérifiez l’abonnement avec ce jeton de confirmation dans un délai de trois jours à compter de la réception.

Pour une autre méthode d'envoi de SMS avec Amazon SNS, consultez la section Envoi de messages SMS dans Amazon SNS avec AWS SDK for PHP la version 3.

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' ]); $protocol = 'sms'; $endpoint = '+1XXX5550100'; $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->subscribe([ 'Protocol' => $protocol, 'Endpoint' => $endpoint, 'ReturnSubscriptionArn' => true, 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Confirmer l'abonnement à un sujet

Pour créer un abonnement, le propriétaire du point de terminaison doit confirmer l’intention de recevoir des messages envoyés par la rubrique à l’aide d’un jeton transmis lorsqu’un abonnement est établi initialement, comme indiqué précédemment. Les jetons de confirmation sont valides pendant trois jours. Au bout de trois jours, vous pouvez renvoyer un jeton en créant un nouvel abonnement.

Pour confirmer un abonnement, utilisez l'ConfirmSubscriptionopé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' ]); $subscription_token = 'arn:aws:sns:us-east-1:111122223333:MyTopic:123456-abcd-12ab-1234-12ba3dc1234a'; $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->confirmSubscription([ 'Token' => $subscription_token, 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Répertorier les abonnements à une rubrique

Pour répertorier jusqu'à 100 abonnements existants dans une AWS région donnée, utilisez l'ListSubscriptionsopé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->listSubscriptions(); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Annuler l'abonnement à une rubrique

Pour supprimer un point de terminaison abonné à une rubrique, utilisez l’opération Unsubscribe.

Si l'abonnement nécessite une authentification pour être supprimé, seul le propriétaire de l'abonnement ou le propriétaire du sujet peut se désabonner, et une AWS signature est requise. Si l'appel de désabonnement ne nécessite pas l'authentification et si le demandeur n'est pas le propriétaire de l'abonnement, un message d'annulation final est remis au point de terminaison.

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' ]); $subscription = 'arn:aws:sns:us-east-1:111122223333:MySubscription'; try { $result = $SnSclient->unsubscribe([ 'SubscriptionArn' => $subscription, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Publier un message sur une rubrique Amazon SNS

Pour envoyer un message à chaque point de terminaison abonné à une rubrique Amazon SNS, utilisez l'opération Publish.

Créez un objet contenant les paramètres de publication d'un message, notamment le texte du message et le nom de ressource Amazon (ARN) de la rubrique Amazon SNS.

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.'; $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->publish([ 'Message' => $message, 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }