View a markdown version of this page

Envoi de SMS à l'aide d'Amazon SNS - Amazon Simple Notification Service

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.

Envoi de SMS à l'aide d'Amazon SNS

Cette section explique comment envoyer des SMS avec Amazon SNS. Vous pouvez publier dans un sujet, abonner des numéros de téléphone à des sujets, définir des attributs pour les messages ou publier directement sur des téléphones mobiles.

Publication de messages SMS dans une rubrique Amazon SNS

Vous pouvez publier simultanément un seul message SMS à plusieurs numéros de téléphone en abonnant ces numéros de téléphone à une rubrique Amazon SNS. Une rubrique SNS est un canal de communication auquel vous pouvez ajouter des abonnés. Vous pouvez ensuite publier des messages à tous les abonnés. Un abonné reçoit tous les messages publiés sur le sujet jusqu'à ce que vous annuliez l'abonnement ou jusqu'à ce qu'il refuse de recevoir des SMS depuis votre AWS compte.

Envoyer un message à un sujet à l'aide du AWS console

Pour créer une rubrique

Procédez comme suit si vous ne disposez pas encore d'une rubrique à laquelle envoyer des SMS.

  1. Connectez-vous à la console Amazon SNS.

  2. Dans le menu de la console, choisissez une région qui prend en charge la messagerie SMS.

  3. Dans le volet de navigation, choisissez Rubriques.

  4. Sur la page Rubriques, choisissez Créer une rubrique.

  5. Sur la page Créer une rubrique sous Détails, procédez comme suit :

    1. Pour Type, choisissez Standard.

    2. Pour Nom de la rubrique, saisissez un nom de rubrique.

    3. (Facultatif) Dans le champ Nom d'affichage, saisissez un préfixe personnalisé pour vos messages SMS. Lorsque vous envoyez un message à la rubrique, Amazon SNS ajoute le nom d'affichage suivi d'un signe supérieur (>) et d'un espace. Les noms d'affichage ne sont pas sensibles à la casse et Amazon SNS les convertit en majuscules. Par exemple, si le nom d'affichage d'une rubrique est MyTopic et que le message est Hello World!, le message se présente comme suit :

      MYTOPIC> Hello World!
  6. Choisissez Créer une rubrique. Le nom de la rubrique et l'Amazon Resource Name (ARN) apparaissent sur la page Rubriques.

Pour créer un abonnement aux SMS

Vous pouvez utiliser les abonnements pour envoyer un SMS à plusieurs destinataires en publiant le message une seule fois dans votre rubrique.

Note

Lorsque vous commencez à utiliser Amazon SNS pour envoyer des SMS, votre AWS compte se trouve dans le bac à sable SMS. L'environnement de test (sandbox) pour SMS offre un environnement sûr pour vous permettre d'essayer les fonctionnalités d'Amazon SNS sans risquer votre réputation d'expéditeur SMS. Même si votre compte se trouve dans l'environnement de test (sandbox) pour SMS, vous pouvez utiliser toutes les fonctionnalités d'Amazon SNS, mais vous pouvez envoyer des SMS uniquement à des numéros de téléphone de destination vérifiés. Pour plus d’informations, consultez Utilisation du sandbox SMS d'Amazon SNS.

  1. Connectez-vous à la console Amazon SNS.

  2. Dans le panneau de navigation, choisissez Abonnements.

  3. Sur la page Abonnements, choisissez Créer un abonnement.

  4. Sur la page Créer un abonnement, sous Détails, procédez comme suit :

    1. Pour ARN de rubrique, saisissez ou choisissez l'ARN (Amazon Resource Name) de la rubrique à laquelle vous souhaitez envoyer des SMS.

    2. Pour Protocole, choisissez SMS.

    3. Pour Point de terminaison, saisissez le numéro de téléphone que vous souhaitez abonner à votre rubrique.

  5. Choisissez Créer un abonnement. Les informations d'abonnement s'affichent sur la page Abonnements.

    Pour ajouter d'autres numéros de téléphone, répétez ces étapes. Vous pouvez également ajouter d'autres types d'abonnements, tels que la messagerie électronique.

Pour envoyer un message

Lorsque vous publiez un message dans une rubrique, Amazon SNS tente de livrer ce message à chaque numéro de téléphone qui est abonné à la rubrique.

  1. Dans la console Amazon SNS, sur la page Rubriques, choisissez le nom de la rubrique à laquelle envoyer des SMS.

  2. Sur la page des détails de la rubrique, sélectionnez Publier le message.

  3. Sur la page Publier un message dans la rubrique, sous Détails du message, procédez comme suit :

    1. Pour Objet, laissez le champ vide, sauf si votre rubrique contient des abonnements par e-mail et que vous voulez effectuer une publication à la fois dans des abonnements par e-mail et par SMS. Amazon SNS utilise l'Objet que vous saisissez en tant que ligne d'objet de l'e-mail.

    2. (Facultatif) Pour time-to-live (TTL), saisissez un certain nombre de secondes pendant lesquelles Amazon SNS doit envoyer votre message SMS à tous les abonnés aux points de terminaison d'une application mobile.

  4. Sous Corps du message, procédez comme suit :

    1. Pour Structure des messages, choisissez Charge utile identique pour tous les protocoles de distribution pour envoyer le même message à tous les types de protocoles abonnés à votre rubrique. Ou, choisissez Charge utile personnalisée pour chaque protocole de distribution pour personnaliser le message pour les abonnés de différents types de protocole. Par exemple, vous pouvez saisir un message par défaut pour les abonnés à un numéro de téléphone et un message personnalisé pour les abonnés à un courrier électronique.

    2. Pour Corps du message à envoyer au point de terminaison, saisissez votre message ou vos messages personnalisés par protocole de distribution.

      Si votre rubrique possède un nom d'affichage, Amazon SNS l'ajoute au message, augmentant ainsi sa longueur. La longueur du nom affiché représente le nombre de caractères dans le nom plus deux caractères pour le signe supérieur (>) et l'espace ajoutés par Amazon SNS.

      Pour plus d'informations sur les quotas de taille pour les SMS, consultez Publier des SMS sur un téléphone mobile à l'aide d'Amazon SNS.

  5. (Facultatif) Pour Attributs de message, ajoutez des métadonnées de message telles que des horodatages, des signatures et des ID.

  6. Choisissez Publier le message. Amazon SNS envoie le message SMS et affiche un message de réussite.

Envoyer un message à un sujet à l'aide du AWS Kits SDK

Pour utiliser un AWS SDK, 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 AWS Guide de référence des kits SDK et des outils.

L'exemple de code suivant illustre comment :

  • Créer une rubrique Amazon SNS.

  • Abonner des numéros de téléphone à la rubrique.

  • Publier des messages SMS dans la rubrique afin que tous les numéros de téléphone abonnés reçoivent le message en même temps.

Java
SDK pour Java 2.x
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Créer une rubrique et renvoyez son ARN.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.CreateTopicRequest; import software.amazon.awssdk.services.sns.model.CreateTopicResponse; import software.amazon.awssdk.services.sns.model.SnsException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class CreateTopic { public static void main(String[] args) { final String usage = """ Usage: <topicName> Where: topicName - The name of the topic to create (for example, mytopic). """; if (args.length != 1) { System.out.println(usage); System.exit(1); } String topicName = args[0]; System.out.println("Creating a topic with name: " + topicName); SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); String arnVal = createSNSTopic(snsClient, topicName); System.out.println("The topic ARN is" + arnVal); snsClient.close(); } public static String createSNSTopic(SnsClient snsClient, String topicName) { CreateTopicResponse result; try { CreateTopicRequest request = CreateTopicRequest.builder() .name(topicName) .build(); result = snsClient.createTopic(request); return result.topicArn(); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } }

Abonner un point de terminaison à une rubrique

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.SnsException; import software.amazon.awssdk.services.sns.model.SubscribeRequest; import software.amazon.awssdk.services.sns.model.SubscribeResponse; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class SubscribeTextSMS { public static void main(String[] args) { final String usage = """ Usage: <topicArn> <phoneNumber> Where: topicArn - The ARN of the topic to subscribe. phoneNumber - A mobile phone number that receives notifications (for example, +1XXX5550100). """; if (args.length < 2) { System.out.println(usage); System.exit(1); } String topicArn = args[0]; String phoneNumber = args[1]; SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); subTextSNS(snsClient, topicArn, phoneNumber); snsClient.close(); } public static void subTextSNS(SnsClient snsClient, String topicArn, String phoneNumber) { try { SubscribeRequest request = SubscribeRequest.builder() .protocol("sms") .endpoint(phoneNumber) .returnSubscriptionArn(true) .topicArn(topicArn) .build(); SubscribeResponse result = snsClient.subscribe(request); System.out.println("Subscription ARN: " + result.subscriptionArn() + "\n\n Status is " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Définir des attributs sur le message, tels que l’ID de l’expéditeur, le prix maximal et son type. Les attributs de message sont facultatifs.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest; import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse; import software.amazon.awssdk.services.sns.model.SnsException; import java.util.HashMap; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class SetSMSAttributes { public static void main(String[] args) { HashMap<String, String> attributes = new HashMap<>(1); attributes.put("DefaultSMSType", "Transactional"); attributes.put("UsageReportS3Bucket", "janbucket"); SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); setSNSAttributes(snsClient, attributes); snsClient.close(); } public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) { try { SetSmsAttributesRequest request = SetSmsAttributesRequest.builder() .attributes(attributes) .build(); SetSmsAttributesResponse result = snsClient.setSMSAttributes(request); System.out.println("Set default Attributes to " + attributes + ". Status was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Publier un message dans une rubrique Le message est envoyé à chaque abonné.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.PublishRequest; import software.amazon.awssdk.services.sns.model.PublishResponse; import software.amazon.awssdk.services.sns.model.SnsException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class PublishTextSMS { public static void main(String[] args) { final String usage = """ Usage: <message> <phoneNumber> Where: message - The message text to send. phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s """; if (args.length != 2) { System.out.println(usage); System.exit(1); } String message = args[0]; String phoneNumber = args[1]; SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); pubTextSMS(snsClient, message, phoneNumber); snsClient.close(); } public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) { try { PublishRequest request = PublishRequest.builder() .message(message) .phoneNumber(phoneNumber) .build(); PublishResponse result = snsClient.publish(request); System.out .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Publier des SMS sur un téléphone mobile à l'aide d'Amazon SNS

Vous pouvez utiliser Amazon SNS pour envoyer des messages SMS directement à un téléphone mobile sans abonner le numéro de téléphone à une rubrique Amazon SNS.

Note

L'abonnement de numéros de téléphone à une rubrique est utile si vous voulez envoyer un message à plusieurs numéros de téléphone à la fois. Pour obtenir des instructions sur la publication d'un SMS dans une rubrique, consultez Publication de messages SMS dans une rubrique Amazon SNS.

Lorsque vous envoyez un message, vous pouvez contrôler s'il est optimisé en matière de coût ou de fiabilité de distribution. Vous pouvez également spécifier un ID de l'expéditeur ou numéro d'origine. Si vous envoyez le message par programmation à l'aide de l'API Amazon SNS ou des AWS kits SDK, vous pouvez spécifier un prix maximum pour la remise du message.

Chaque SMS peut contenir jusqu'à 140 octets et le quota de caractères dépend du schéma de codage. Par exemple, un SMS peut contenir :

  • 160 caractères GSM

  • 140 caractères ASCII

  • 70 UCS-2 caractères

Si vous publiez un message qui dépasse ce quota de taille, Amazon SNS le fractionne en plusieurs messages, chacun n'excédant pas ce quota. Les messages ne sont pas coupés au milieu d'un mot, mais plutôt sur la base d'un mot entier. Le quota de taille totale pour une action de publication de SMS est de 1600 octets.

Lorsque vous envoyez un message SMS, vous spécifiez le numéro de téléphone en utilisant le E.164 format, une structure de numérotation téléphonique standard utilisée pour les télécommunications internationales. Les numéros qui respectent ce format peuvent comporter 15 chiffres au maximum, avec pour préfixe le signe plus (+) et le code pays. Par exemple, un numéro de téléphone américain au E.164 format +1XXX5550100 apparaît.

Envoi d'un message (console)

  1. Connectez-vous à la console Amazon SNS.

  2. Dans le menu de la console, choisissez une région qui prend en charge la messagerie SMS.

  3. Dans le panneau de navigation, sélectionnez Text messaging (SMS).

  4. Sur la page Messagerie texte mobile (SMS), choisissez Publier un message texte.

  5. Sur la page Publier un message SMS, pour Type de message choisissez l'une des options suivantes :

    • Promotionnel : Non-critical messages, tels que des messages marketing.

    • Transactional – Messages stratégiques qui prennent en charge les transactions clients, comme des codes secrets uniques pour l'authentification multifacteur.

    Note

    Ce paramètre au niveau des messages remplace le type de message par défaut au niveau du compte. Vous pouvez définir un type de message par défaut au niveau du compte dans la section Préférences de messagerie SMS de la page Messagerie texte mobile (SMS).

    Pour obtenir des informations sur la tarification des messages promotionnels et transactionnels, consultez Tarification mondiale SMS.

  6. Pour Numéro de téléphone de destination, saisissez le numéro de téléphone auquel vous souhaitez envoyer le message.

  7. Pour Message, saisissez le message à envoyer.

  8. (Facultatif) Sous Identités d'origine, spécifiez comment vous identifier auprès de vos destinataires :

    • Pour spécifier un ID de l'expéditeur, saisissez un ID personnalisé contenant entre 3 et 11 caractères alphanumériques, dont au moins une lettre et aucun espace. L'ID expéditeur s'affiche en tant qu'expéditeur du message sur l'appareil de réception. Par exemple, vous pouvez utiliser votre marque d’entreprise pour faciliter la reconnaissance de la source du message.

      La prise en charge des identifiants d'expéditeur varie en fonction du pays et de and/or la région. Par exemple, les messages envoyés à U.S des numéros de téléphone n'afficheront pas l'ID de l'expéditeur. Pour les pays et régions qui prennent en charge les identifiants d'expéditeur, consultez la section Pays et régions pris en charge pour la messagerie SMS AWS End User Messaging SMS dans le Guide de AWS End User Messaging SMS l'utilisateur.

      Si vous ne spécifiez pas d'ID d'expéditeur, l'un des éléments suivants s'affiche comme identité d'origine :

      • Dans les pays qui prennent en charge les codes longs, le code long apparaît.

      • Dans les pays où seuls les ID d'expéditeur sont pris en charge, NOTICE apparaît.

      Cet ID expéditeur au niveau du message remplace l'ID expéditeur par défaut, que vous définissez sur la page Préférences de SMS.

    • Pour spécifier un Numéro d'origine, saisissez une chaîne de 5 à 14 numéros à afficher comme numéro de téléphone de l'expéditeur sur l'appareil du destinataire. Cette chaîne doit correspondre à un numéro d'origine configuré dans votre pays Compte AWS de destination. Le numéro d'origine peut être un numéro 10DLC, un numéro sans frais, un code long de personne à personne ou des codes courts. Pour plus d’informations, consultez Identités d'origine pour les messages SMS Amazon SNS.

      Si vous ne spécifiez pas de numéro d'origine, Amazon SNS sélectionne un numéro d'origine à utiliser pour le message texte SMS, en fonction de la configuration de votre Compte AWS .

  9. Si vous envoyez des SMS à des destinataires en Inde, développez Country-specific les attributs et spécifiez les attributs suivants :

    • ID d'entité – ID d'entité ou ID d'entité principale (PE) pour l'envoi de messages SMS à des destinataires en Inde. Cet ID est une chaîne unique de 1 à 50 caractères fournie par la Telecom Regulatory Authority of India (TRAI) pour identifier l'entité que vous avez enregistrée auprès de la TRAI.

    • ID de modèle – ID de modèle pour l'envoi de messages SMS à des destinataires en Inde. Cet identifiant est une TRAI-provided chaîne unique de 1 à 50 caractères qui identifie le modèle que vous avez enregistré auprès de la TRAI. L'ID du modèle doit être associé à l'ID de l'expéditeur que vous avez spécifié pour le message.

    Pour plus d'informations sur l'envoi de SMS à des destinataires en Inde, consultez le Guide de l'AWS End User Messaging SMS utilisateur sur la procédure d'enregistrement de l'identifiant de l'expéditeur en Inde.

  10. Choisissez Publier le message.

Astuce

Pour envoyer des messages SMS à partir d'un numéro d'origine, vous pouvez également choisir Numéros d'origine dans le panneau de navigation de la console Amazon SNS. Choisissez un numéro d'origine qui inclut SMS dans la colonne Capacités, puis choisissez Publier un message texte.

Envoi d'un message (AWS SDK)

Pour envoyer un message SMS à l'aide de l'un des AWS kits SDK, utilisez l'opération d'API de ce SDK qui correspond à la Publish demande de l'API Amazon SNS. Cette demande vous permet d'envoyer un SMS directement à un numéro de téléphone. Vous pouvez également utiliser le paramètre MessageAttributes pour définir les valeurs des noms d'attributs suivants :

AWS.SNS.SMS.SenderID

Un ID personnalisé contenant entre 3 et 11 caractères alphanumériques ou des traits d’union (-), dont au moins une lettre et aucun espace. L'ID de l'expéditeur s'affiche en tant qu'expéditeur du message sur l'appareil de réception. Par exemple, vous pouvez utiliser votre marque d'entreprise pour permettre de faciliter la reconnaissance de la source du message.

La prise en charge des ID expéditeur varie selon les pays ou les régions. Par exemple, les messages diffusés à des numéros de téléphone américains n'affichent pas l'ID d'expéditeur. Pour obtenir la liste des pays ou régions qui prennent en charge les identifiants d'expéditeur, consultez la section Pays et régions pris en charge pour la messagerie SMS AWS End User Messaging SMS dans le Guide de AWS End User Messaging SMS l'utilisateur.

Si vous ne spécifiez pas d'ID d'expéditeur, un code long s'affiche comme l'ID d'expéditeur dans les régions ou pays pris en charge. Pour les pays ou régions qui requièrent un ID d'expéditeur sous forme alphabétique, AVIS s'affiche en tant qu'ID d'expéditeur.

Cet attribut au niveau du message remplace l'attribut au niveau du compte DefaultSenderID, que vous pouvez définir à l'aide de la demande SetSMSAttributes.

AWS.MM.SMS.OriginationNumber

Une chaîne personnalisée de 5 à 14 nombres, qui peut inclure un signe plus initial en option (+). Cette chaîne de nombres apparaît comme le numéro de téléphone de l'expéditeur sur le périphérique de réception. La chaîne doit correspondre à un numéro d'origine configuré dans votre AWS compte pour le pays de destination. Le numéro d'origine peut être un numéro 10DLC, un numéro sans frais, un code de personne à personne (P2P) long ou un code court. Pour plus d'informations, consultez la section Numéros de téléphone dans le Guide de AWS End User Messaging SMS l'utilisateur.

Si vous ne spécifiez pas de numéro d'origine, Amazon SNS choisit un numéro d'origine en fonction de la configuration de votre AWS compte.

AWS.SNS.SMS.MaxPrice

Le prix maximum en USD que vous êtes prêt à payer pour envoyer le message SMS. Si Amazon SNS détermine que l'envoi du message entraînerait un coût supérieur à votre prix maximum, il n'envoie pas le message.

Cet attribut n'a aucun effet si vos coûts SMS du mois actuel ont déjà dépassé le quota défini pour l'attribut MonthlySpendLimit. Vous pouvez définir l'attribut MonthlySpendLimit à l'aide de la demande SetSMSAttributes.

Si vous envoyez le message à une rubrique Amazon SNS, le prix maximum s'applique à chaque distribution de message envoyée sur chaque numéro de téléphone abonné à la rubrique.

AWS.SNS.SMS.SMSType

Le type de message que vous envoyez :

  • Promotional— Non-critical des messages, tels que des messages marketing.

  • Transactional(par défaut) : messages critiques qui facilitent les transactions des clients, tels que les codes d'accès à usage unique pour l'authentification multifactorielle.

Cet attribut au niveau du message remplace l'attribut au niveau du compte DefaultSMSType, que vous pouvez définir à l'aide de la demande SetSMSAttributes.

AWS.MM.SMS.EntityId

Cet attribut est requis uniquement pour l'envoi de messages SMS à des destinataires en Inde.

Il s'agit de votre ID d'entité ou ID d'entité principale (PE) pour l'envoi de messages SMS aux destinataires en Inde. Cet ID est une chaîne unique de 1 à 50 caractères fournie par la Telecom Regulatory Authority of India (TRAI) pour identifier l'entité que vous avez enregistrée auprès de la TRAI.

AWS.MM.SMS.TemplateId

Cet attribut est requis uniquement pour l'envoi de messages SMS à des destinataires en Inde.

Ceci est votre modèle pour l'envoi de messages SMS à des destinataires en Inde. Cet identifiant est une TRAI-provided chaîne unique de 1 à 50 caractères qui identifie le modèle que vous avez enregistré auprès de la TRAI. L'ID du modèle doit être associé à l'ID de l'expéditeur que vous avez spécifié pour le message.

Envoi d'un message

Les exemples de code suivants montrent comment publier des messages SMS à l’aide d’Amazon SNS.

.NET
SDK pour .NET
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

namespace SNSMessageExample { using System; using System.Threading.Tasks; using Amazon; using Amazon.SimpleNotificationService; using Amazon.SimpleNotificationService.Model; public class SNSMessage { private AmazonSimpleNotificationServiceClient snsClient; /// <summary> /// Initializes a new instance of the <see cref="SNSMessage"/> class. /// Constructs a new SNSMessage object initializing the Amazon Simple /// Notification Service (Amazon SNS) client using the supplied /// Region endpoint. /// </summary> /// <param name="regionEndpoint">The Amazon Region endpoint to use in /// sending test messages with this object.</param> public SNSMessage(RegionEndpoint regionEndpoint) { snsClient = new AmazonSimpleNotificationServiceClient(regionEndpoint); } /// <summary> /// Sends the SMS message passed in the text parameter to the phone number /// in phoneNum. /// </summary> /// <param name="phoneNum">The ten-digit phone number to which the text /// message will be sent.</param> /// <param name="text">The text of the message to send.</param> /// <returns>Async task.</returns> public async Task SendTextMessageAsync(string phoneNum, string text) { if (string.IsNullOrEmpty(phoneNum) || string.IsNullOrEmpty(text)) { return; } // Now actually send the message. var request = new PublishRequest { Message = text, PhoneNumber = phoneNum, }; try { var response = await snsClient.PublishAsync(request); } catch (Exception ex) { Console.WriteLine($"Error sending message: {ex}"); } } } }
  • Pour plus de détails sur l’API, consultez Publish dans la Référence des API du kit AWS SDK pour .NET .

C++
SDK pour C++
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

/** * Publish SMS: use Amazon Simple Notification Service (Amazon SNS) to send an SMS text message to a phone number. * Note: This requires additional AWS configuration prior to running example. * * NOTE: When you start using Amazon SNS to send SMS messages, your AWS account is in the SMS sandbox and you can only * use verified destination phone numbers. See https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html. * NOTE: If destination is in the US, you also have an additional restriction that you have use a dedicated * origination ID (phone number). You can request an origination number using Amazon Pinpoint for a fee. * See https://aws.amazon.com/blogs/compute/provisioning-and-using-10dlc-origination-numbers-with-amazon-sns/ * for more information. * * <phone_number_value> input parameter uses E.164 format. * For example, in United States, this input value should be of the form: +12223334444 */ //! Send an SMS text message to a phone number. /*! \param message: The message to publish. \param phoneNumber: The phone number of the recipient in E.164 format. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::SNS::publishSms(const Aws::String &message, const Aws::String &phoneNumber, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::SNS::SNSClient snsClient(clientConfiguration); Aws::SNS::Model::PublishRequest request; request.SetMessage(message); request.SetPhoneNumber(phoneNumber); const Aws::SNS::Model::PublishOutcome outcome = snsClient.Publish(request); if (outcome.IsSuccess()) { std::cout << "Message published successfully with message id, '" << outcome.GetResult().GetMessageId() << "'." << std::endl; } else { std::cerr << "Error while publishing message " << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); }
  • Pour de plus amples informations sur l’API, consultez Publier dans AWS SDK pour C++ Référence de l’API.

Java
SDK pour Java 2.x
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.PublishRequest; import software.amazon.awssdk.services.sns.model.PublishResponse; import software.amazon.awssdk.services.sns.model.SnsException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class PublishTextSMS { public static void main(String[] args) { final String usage = """ Usage: <message> <phoneNumber> Where: message - The message text to send. phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s """; if (args.length != 2) { System.out.println(usage); System.exit(1); } String message = args[0]; String phoneNumber = args[1]; SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); pubTextSMS(snsClient, message, phoneNumber); snsClient.close(); } public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) { try { PublishRequest request = PublishRequest.builder() .message(message) .phoneNumber(phoneNumber) .build(); PublishResponse result = snsClient.publish(request); System.out .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • Pour plus d’informations sur l’API, consultez Publier dans AWS SDK for Java 2.x Référence de l’API.

Kotlin
Kit SDK pour Kotlin
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

suspend fun pubTextSMS( messageVal: String?, phoneNumberVal: String?, ) { val request = PublishRequest { message = messageVal phoneNumber = phoneNumberVal } SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient -> val result = snsClient.publish(request) println("${result.messageId} message sent.") } }
  • Pour plus d’informations sur l’API, consultez la section Publier de la référence du kit SDK AWS pour l’API Kotlin.

PHP
Kit SDK pour PHP
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient; /** * Sends a text message (SMS message) directly to a phone number using Amazon SNS. * * 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' ]); $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()); }
Python
Kit SDK for Python (Boto3)
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

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 publish_text_message(self, phone_number, message): """ Publishes a text message directly to a phone number without need for a subscription. :param phone_number: The phone number that receives the message. This must be in E.164 format. For example, a United States phone number might be +12065550101. :param message: The message to send. :return: The ID of the message. """ try: response = self.sns_resource.meta.client.publish( PhoneNumber=phone_number, Message=message ) message_id = response["MessageId"] logger.info("Published message to %s.", phone_number) except ClientError: logger.exception("Couldn't publish message to %s.", phone_number) raise else: return message_id
  • Pour de plus amples informations sur l’API, consultez Publier dans Référence du kit SDK AWS de l’API Python (Boto3).

SAP ABAP
Kit SDK pour SAP ABAP
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

" iv_phone_number = '+12065550101' - Phone number in E.164 format TRY. oo_result = lo_sns->publish( " oo_result is returned for testing purposes. " iv_phonenumber = iv_phone_number iv_message = iv_message ). MESSAGE 'Message published to phone number.' TYPE 'I'. CATCH /aws1/cx_snsnotfoundexception. MESSAGE 'Phone number does not exist.' TYPE 'E'. ENDTRY.
  • Pour plus d'informations sur l'API, consultez Publish dans la Référence d'API du kit SDK AWS pour SAP ABAP.