Gestion des numéros de téléphone et des abonnements SMS - Amazon Simple Notification Service

Gestion des numéros de téléphone et des abonnements SMS

Amazon SNS fournit plusieurs options pour gérer les personnes autorisées à recevoir des messages SMS de votre compte. A une fréquence limitée, vous pouvez réactiver des numéros de téléphone qui ont refusé de recevoir des SMS de votre compte. Pour arrêter l'envoi de messages à des abonnements SMS, vous pouvez supprimer des abonnements ou les rubriques qui effectuent des publications dedans.

Désactivation de la réception des SMS

Selon les lois et réglementations locales en vigueur (par exemple, aux États-Unis et au Canada), les destinataires de SMS peuvent utiliser leurs appareils pour refuser d'en recevoir en répondant au message avec l'une des options suivantes.

  • ARRÊTER (français)

  • ANNULER

  • FIN

  • REFUSER

  • REFUSER

  • SORTIR

  • SUPPRIMER

  • ARRÊTER

  • TD

  • SE DÉSABONNER

Pour refuser, le destinataire doit répondre au même numéro d'origine qu'Amazon SNS a utilisé pour envoyer le message. Après avoir refusé, le destinataire ne recevra plus les messages SMS envoyés à partir de votre compte Compte AWS, sauf si vous réactivez le numéro de téléphone.

Si le numéro de téléphone est abonné à une rubrique Amazon SNS, la désactivation ne supprime pas l'abonnement, mais les SMS ne seront pas diffusés à cet abonnement, sauf si vous réactivez le numéro de téléphone.

Gestion des numéros de téléphone et des abonnements (console)

Vous pouvez utiliser la console Amazon SNS pour contrôler quels numéros de téléphone recevront des SMS de votre compte.

Réactivation d'un numéro de téléphone désactivé

Vous pouvez afficher les numéros de téléphone qui ont refusé de recevoir des SMS de votre compte et vous pouvez les réactiver pour reprendre l'envoi de messages.

Vous ne pouvez réactiver un numéro de téléphone qu'une fois tous les 30 jours.

  1. Connectez-vous à la console Amazon SNS.

  2. Dans le menu de la console, définissez le sélecteur de région sur une région prenant en charge la messagerie SMS.

  3. Dans le panneau de navigation, choisissez Messages texte (SMS).

  4. Sur la page Messages texte (SMS), choisissez Afficher les numéros de téléphone désabonnés. La page Opted out phone numbers affiche les numéros de téléphone désactivés.

  5. Cochez la case correspondant au numéro de téléphone que vous voulez réactiver, puis sélectionnez Opt in. Le numéro de téléphone n'est plus désactivé et recevra les SMS que vous lui envoyez.

Suppression d'un abonnement SMS

Supprimez un abonnement SMS pour arrêter l'envoi de SMS à ce numéro de téléphone lorsque vous effectuez une publication dans vos rubriques.

  1. Dans le panneau de navigation, choisissez Abonnements.

  2. Cochez les cases correspondant aux abonnements à supprimer. Choisissez ensuite Actions, puis Delete Subscriptions.

  3. Dans la fenêtre Supprimer, sélectionnez Supprimer. Amazon SNS supprime l'abonnement et affiche un message de de réussite.

Suppression d'une rubrique

Supprimez une rubrique lorsque vous ne souhaitez plus publier de messages dans ses points de terminaison abonnés.

  1. Dans le panneau de navigation, choisissez Rubriques.

  2. Cochez les cases correspondant aux rubriques à supprimer. Choisissez ensuite Actions, puis Supprimer des rubriques.

  3. Dans la fenêtre Supprimer, sélectionnez Supprimer. Amazon SNS supprime la rubrique et affiche un message de réussite.

Gestion des numéros de téléphone et des abonnements (kits SDKAWS )

Vous pouvez utiliser les kits de développement logiciel (SDK) AWSpour effectuer des demandes par programme Amazon SNS et gérer les numéros de téléphone qui peuvent recevoir des SMS de votre compte.

Pour utiliser un kit SDK AWS, vous devez le configurer avec vos informations d'identification. Pour de plus amples informations, veuillez consulter Les fichiers de configuration et d'informations d'identification partagés dans le Guide de référence des kits SDK AWS et des outils.

Affichage de tous les numéros de téléphone désactivés

Pour afficher tous les numéros de téléphone désactivés, soumettez une demande ListPhoneNumbersOptedOut avec l'API Amazon SNS.

Les exemples de code suivants montrent comment répertorier les numéros de téléphone qui ont été désactivés pour la réception de messages Amazon SNS.

Java
Kit SDK pour Java 2.x
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

public static void listOpts( SnsClient snsClient) { try { ListPhoneNumbersOptedOutRequest request = ListPhoneNumbersOptedOutRequest.builder().build(); ListPhoneNumbersOptedOutResponse result = snsClient.listPhoneNumbersOptedOut(request); System.out.println("Status is " + result.sdkHttpResponse().statusCode() + "\n\nPhone Numbers: \n\n" + result.phoneNumbers()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • Pour de plus amples informations sur l’API, consultez ListPhoneNumbersOptedOut dans AWS SDK for Java 2.x Référence de l’API.

PHP
Kit SDK pour PHP
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

require 'vendor/autoload.php'; use Aws\Sns\SnsClient; use Aws\Exception\AwsException; /** * Returns a list of phone numbers that are opted out of receiving SMS messages from your AWS SNS account. * * This code expects that you have AWS credentials set up per: * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html */ $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()); }

Vérification de la désactivation d'un numéro de téléphone

Pour vérifier si un numéro de téléphone est désactivé, soumettez une demande CheckIfPhoneNumberIsOptedOut avec l'API Amazon SNS.

Les exemples de code suivants montrent comment vérifier si un numéro de téléphone est désactivé pour la réception de messages Amazon SNS.

.NET
AWS SDK for .NET
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

using System; using System.Threading.Tasks; using Amazon.SimpleNotificationService; using Amazon.SimpleNotificationService.Model; /// <summary> /// This example shows how to use the Amazon Simple Notification Service /// (Amazon SNS) to check whether a phone number has been opted out. The /// example was created using the AWS SDK for .NET version 3.7 and /// .NET Core 5.0. /// </summary> public class IsPhoneNumOptedOut { public static async Task Main() { string phoneNumber = "+15551112222"; IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient(); await CheckIfOptedOutAsync(client, phoneNumber); } /// <summary> /// Checks to see if the supplied phone number has been opted out. /// </summary> /// <param name="client">The initialized Amazon SNS Client object used /// to check if the phone number has been opted out.</param> /// <param name="phoneNumber">A string representing the phone number /// to check.</param> public static async Task CheckIfOptedOutAsync(IAmazonSimpleNotificationService client, string phoneNumber) { var request = new CheckIfPhoneNumberIsOptedOutRequest { PhoneNumber = phoneNumber, }; try { var response = await client.CheckIfPhoneNumberIsOptedOutAsync(request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { string optOutStatus = response.IsOptedOut ? "opted out" : "not opted out."; Console.WriteLine($"The phone number: {phoneNumber} is {optOutStatus}"); } } catch (AuthorizationErrorException ex) { Console.WriteLine($"{ex.Message}"); } } }
Java
Kit SDK pour Java 2.x
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

public static void checkPhone(SnsClient snsClient, String phoneNumber) { try { CheckIfPhoneNumberIsOptedOutRequest request = CheckIfPhoneNumberIsOptedOutRequest.builder() .phoneNumber(phoneNumber) .build(); CheckIfPhoneNumberIsOptedOutResponse result = snsClient.checkIfPhoneNumberIsOptedOut(request); System.out.println(result.isOptedOut() + "Phone Number " + phoneNumber + " has Opted Out of receiving sns messages." + "\n\nStatus was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
JavaScript
Kit SDK pour JavaScript V3
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

Créez le client dans un module séparé et exportez-le.

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

Importez le kit SDK et les modules client et appelez l’API.

// Import required AWS SDK clients and commands for Node.js import {CheckIfPhoneNumberIsOptedOutCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { phoneNumber: "353861230764" }; //PHONE_NUMBER, in the E.164 phone number structure const run = async () => { try { const data = await snsClient.send( new CheckIfPhoneNumberIsOptedOutCommand(params) ); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
PHP
Kit SDK pour PHP
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

require 'vendor/autoload.php'; use Aws\Sns\SnsClient; use Aws\Exception\AwsException; /** * Indicates whether the phone number owner has opted out of receiving SMS messages from your AWS SNS account. * * This code expects that you have AWS credentials set up per: * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html */ $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éactivation d'un numéro de téléphone désactivé

Pour réactiver un numéro de téléphone, soumettez une demande OptInPhoneNumber avec l'API Amazon SNS.

Vous ne pouvez réactiver un numéro de téléphone qu'une fois tous les 30 jours.

Suppression d'un abonnement SMS

Pour supprimer un abonnement SMS à partir d'une rubrique Amazon SNS, obtenez l'ARN de l'abonnement en soumettant une demande ListSubscriptions avec l'API Amazon SNS API, puis transmettez l'ARN à une demande Unsubscribe.

Les exemples de code suivants expliquent comment supprimer un abonnement Amazon SNS.

C++
Kit SDK pour C++
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

Aws::SDKOptions options; Aws::InitAPI(options); { Aws::SNS::SNSClient sns; Aws::String subscription_arn = argv[1]; Aws::SNS::Model::UnsubscribeRequest s_req; s_req.SetSubscriptionArn(subscription_arn); auto s_out = sns.Unsubscribe(s_req); if (s_out.IsSuccess()) { std::cout << "Unsubscribed successfully " << std::endl; } else { std::cout << "Error while unsubscribing " << s_out.GetError().GetMessage() << std::endl; } } Aws::ShutdownAPI(options);
  • Pour de plus amples informations sur l’API, consultez Se désabonner dans AWS SDK for C++ Référence de l’API.

Java
Kit SDK pour Java 2.x
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

public static void unSub(SnsClient snsClient, String subscriptionArn) { try { UnsubscribeRequest request = UnsubscribeRequest.builder() .subscriptionArn(subscriptionArn) .build(); UnsubscribeResponse result = snsClient.unsubscribe(request); System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode() + "\n\nSubscription was removed for " + request.subscriptionArn()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • Pour de plus amples informations sur l’API, consultez Se désabonner dans AWS SDK for Java 2.x Référence de l’API.

JavaScript
Kit SDK pour JavaScript V3
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

Créez le client dans un module séparé et exportez-le.

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

Importez le kit SDK et les modules client et appelez l’API.

// Import required AWS SDK clients and commands for Node.js import {UnsubscribeCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { SubscriptionArn: "TOPIC_SUBSCRIPTION_ARN" }; //TOPIC_SUBSCRIPTION_ARN const run = async () => { try { const data = await snsClient.send(new UnsubscribeCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
Kotlin
Kit SDK pour Kotlin
Note

Ceci est une documentation préliminaire pour une fonctionnalité en version de prévisualisation. Elle est susceptible d’être modifiée.

Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

suspend fun unSub(subscriptionArnVal: String) { val request = UnsubscribeRequest { subscriptionArn = subscriptionArnVal } SnsClient { region = "us-east-1" }.use { snsClient -> snsClient.unsubscribe(request) println("Subscription was removed for ${request.subscriptionArn}") } }
  • Pour plus d’informations sur l’API, consultez la section Se désabonner de la référence du kit SDK AWS pour l’API Kotlin.

PHP
Kit SDK pour PHP
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

require 'vendor/autoload.php'; use Aws\Sns\SnsClient; use Aws\Exception\AwsException; /** * Deletes a subscription to an Amazon SNS topic. * * This code expects that you have AWS credentials set up per: * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html */ $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()); }
Python
Kit SDK pour Python (Boto3)
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

class SnsWrapper: """Encapsulates Amazon SNS topic and subscription functions.""" def __init__(self, sns_resource): """ :param sns_resource: A Boto3 Amazon SNS resource. """ self.sns_resource = sns_resource def delete_subscription(subscription): """ Unsubscribes and deletes a subscription. """ try: subscription.delete() logger.info("Deleted subscription %s.", subscription.arn) except ClientError: logger.exception("Couldn't delete subscription %s.", subscription.arn) raise
  • Pour de plus amples informations sur l’API, consultez Se désabonner dans AWS Référence de l’API du kit SDK for Python (Boto3).

Suppression d'une rubrique

Pour supprimer une rubrique ainsi que la totalité de ses abonnements, obtenez l'ARN de la rubrique en soumettant une demande ListTopics avec l'API Amazon SNS, puis transmettez l'ARN à la demande DeleteTopic.

Les exemples de code suivants montrent comment supprimer une rubrique Amazon SNS et tous les abonnements à cette rubrique.

.NET
AWS SDK for .NET
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

using System; using System.Threading.Tasks; using Amazon.SimpleNotificationService; /// <summary> /// This example deletes an existing Amazon Simple Notification Service /// (Amazon SNS) topic. The example was created using the AWS SDK for .NET /// version 3.7 and .NET Core 5.0. /// </summary> public class DeleteSNSTopic { public static async Task Main() { string topicArn = "arn:aws:sns:us-east-2:704825161248:ExampleSNSTopic"; IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient(); var response = await client.DeleteTopicAsync(topicArn); } }
  • Pour de plus amples informations sur l’API, consultez DeleteTopic dans AWS SDK for .NET Référence de l’API.

C++
Kit SDK pour C++
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

Aws::SDKOptions options; Aws::InitAPI(options); { Aws::String topic_arn = argv[1]; Aws::SNS::SNSClient sns; Aws::SNS::Model::DeleteTopicRequest dt_req; dt_req.SetTopicArn(topic_arn); auto dt_out = sns.DeleteTopic(dt_req); if (dt_out.IsSuccess()) { std::cout << "Successfully deleted topic " << topic_arn << std::endl; } else { std::cout << "Error deleting topic " << topic_arn << ":" << dt_out.GetError().GetMessage() << std::endl; } } Aws::ShutdownAPI(options);
  • Pour de plus amples informations sur l’API, consultez DeleteTopic dans AWS SDK for C++ Référence de l’API.

Java
Kit SDK pour Java 2.x
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

public static void deleteSNSTopic(SnsClient snsClient, String topicArn ) { try { DeleteTopicRequest request = DeleteTopicRequest.builder() .topicArn(topicArn) .build(); DeleteTopicResponse result = snsClient.deleteTopic(request); System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • Pour de plus amples informations sur l’API, consultez DeleteTopic dans AWS SDK for Java 2.x Référence de l’API.

JavaScript
Kit SDK pour JavaScript V3
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

Créez le client dans un module séparé et exportez-le.

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

Importez le kit SDK et les modules client et appelez l’API.

// Load the AWS SDK for Node.js // Import required AWS SDK clients and commands for Node.js import {DeleteTopicCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { TopicArn: "TOPIC_ARN" }; //TOPIC_ARN const run = async () => { try { const data = await snsClient.send(new DeleteTopicCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
Kotlin
Kit SDK pour Kotlin
Note

Ceci est une documentation préliminaire pour une fonctionnalité en version de prévisualisation. Elle est susceptible d’être modifiée.

Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

suspend fun deleteSNSTopic(topicArnVal: String) { val request = DeleteTopicRequest { topicArn = topicArnVal } SnsClient { region = "us-east-1" }.use { snsClient -> snsClient.deleteTopic(request) println("$topicArnVal was successfully deleted.") } }
  • Pour plus d’informations sur l’API, consultez la section DeleteTopic de la référence du kit SDK AWS pour l’API Kotlin.

PHP
Kit SDK pour PHP
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

require 'vendor/autoload.php'; use Aws\Sns\SnsClient; use Aws\Exception\AwsException; /** * Deletes a SNS topic and all its subscriptions. * * This code expects that you have AWS credentials set up per: * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html */ $SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->deleteTopic([ 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
  • Pour de plus amples informations sur l’API, consultez DeleteTopic dans AWS SDK for PHP Référence de l’API.

Python
Kit SDK pour Python (Boto3)
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

class SnsWrapper: """Encapsulates Amazon SNS topic and subscription functions.""" def __init__(self, sns_resource): """ :param sns_resource: A Boto3 Amazon SNS resource. """ self.sns_resource = sns_resource def delete_topic(topic): """ Deletes a topic. All subscriptions to the topic are also deleted. """ try: topic.delete() logger.info("Deleted topic %s.", topic.arn) except ClientError: logger.exception("Couldn't delete topic %s.", topic.arn) raise
  • Pour de plus amples informations sur l’API, consultez DeleteTopic dans AWS Référence de l’API du kit SDK for Python (Boto3).