View a markdown version of this page

Invio di messaggi SMS tramite Amazon SNS - Amazon Simple Notification Service

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 tramite Amazon SNS

Questa sezione descrive come inviare messaggi SMS con Amazon SNS. Puoi pubblicare su un argomento, iscrivere numeri di telefono agli argomenti, impostare attributi sui messaggi o pubblicarli direttamente sui telefoni cellulari.

Pubblicazione di messaggi SMS su un argomento di Amazon SNS

Puoi inviare un singolo messaggio SMS a più numeri di telefono contemporaneamente sottoscrivendo tali numeri in un argomento Amazon SNS. Un argomento SNS è un canale di comunicazione dove è possibile aggiungere gli abbonati ai quali si vogliono indirizzare determinati messaggi. Un abbonato riceve tutti i messaggi pubblicati sull'argomento fino a quando non annulli l'abbonamento o fino a quando l'abbonato non sceglie di non ricevere messaggi SMS dal tuo account. AWS

Invio di un messaggio a un argomento utilizzando il AWS console

Per creare un argomento

Se ancora non disponi di un argomento al quale inviare messaggi SMS, completa i seguenti passaggi.

  1. Accedi alla console Amazon SNS.

  2. Nel menu della console, scegli una regione che supporti la messaggistica SMS.

  3. Nel pannello di navigazione, scegli Argomenti.

  4. Nella pagina Topics (Argomenti), seleziona Create new topic (Crea nuovo argomento).

  5. Nella pagina Create topic (Crea argomento), in Details (Dettagli), effettuare le seguenti operazioni:

    1. Per Tipo, scegliere Standard.

    2. In Name (Nome), immettere un nome.

    3. (Facoltativo) In Display name (Nome visualizzato), inserisci un prefisso personalizzato per il messaggio SMS. Quando invii un messaggio all'argomento, Amazon SNS antepone il nome visualizzato a una parentesi angolare destra (>) e uno spazio. I nomi visualizzati non sono sensibili alle maiuscole/minuscole, in quanto sarà poi Amazon SNS a convertirli in caratteri maiuscoli. Ad esempio, se il nome visualizzato di un argomento è MyTopic e il messaggio è Hello World!, il messaggio appare in questo formato:

      MYTOPIC> Hello World!
  6. Scegliere Create topic (Crea argomento). Il nome dell'argomento e l'Amazon Resource Name (ARN) vengono visualizzati nella pagina Topics (Argomenti)

Per creare una sottoscrizione SMS

Con le sottoscrizioni puoi inviare un messaggio SMS a più destinatari pubblicandolo una volta sola nel tuo argomento.

Nota

Quando inizi a utilizzare Amazon SNS per inviare messaggi SMS, il tuo AWS account si trova nella sandbox SMS. La sandbox SMS offre un ambiente sicuro per provare le funzionalità Amazon SNS senza rischiare la reputazione del mittente SMS. Quando il tuo account è nella sandbox SMS, puoi utilizzare tutte le caratteristiche di Amazon SNS, ma puoi inviare SMS solo a numeri di telefono di destinazione verificati. Per ulteriori informazioni, consulta Utilizzo della sandbox SMS di Amazon SNS.

  1. Accedi alla console Amazon SNS.

  2. Nel riquadro di navigazione scegli Subscriptions (Sottoscrizioni).

  3. Nella pagina Sottoscrizioni scegli Crea sottoscrizione.

  4. Nella pagina Create subscription (Crea sottoscrizione), nella sezione Details (Dettagli), eseguire queste operazioni:

    1. Per Topic ARN (ARN argomento), inserisci o seleziona l'Amazon Resource Name (ARN) dell'argomento a cui desideri inviare messaggi SMS.

    2. In Protocol (Protocollo), scegli SMS.

    3. Per Endpoint, inserisci il numero di telefono a cui desideri iscriverti all'argomento.

  5. Scegli Create Subscription (Crea sottoscrizione). Le informazioni sull'abbonamento vengono visualizzate nella pagina Subscriptions (Abbonamenti).

    Per aggiungere altri numeri di telefono, ripetere questi passaggi. Puoi anche aggiungere altri tipi di sottoscrizione, ad esempio le e-mail.

Come inviare un messaggio

Quando pubblichi un messaggio in un argomento, Amazon SNS prova a consegnare il messaggio a tutti i numeri di telefono che hanno effettuato la sottoscrizione a un dato argomento.

  1. Nella Console Amazon SNS, nella pagina Topics (Argomenti), scegli il nome dell'argomento a cui desideri inviare messaggi SMS.

  2. Nella pagina dettagli, seleziona Publish message (Pubblica messaggio).

  3. Nella pagina Publish message to topic (Pubblica messaggio nell'argomento), alla sezione Message details (Dettagli messaggio) procedi come indicato di seguito:

    1. Per Subject (Oggetto), lascia il campo vuoto a meno che il tuo argomento non contenga anche sottoscrizioni e-mail e tu non voglia pubblicare il messaggio sulle sottoscrizioni e-mail ed SMS. Amazon SNS utilizza il Subject (Oggetto) che inserisci come oggetto dell'e-mail.

    2. (Facoltativo) Per Time to Live (TTL) (Durata), inserisci un numero di secondi che Amazon SNS deve inviare il tuo messaggio SMS a tutti gli abbonati agli endpoint delle applicazioni mobili.

  4. Su Message body (Corpo del messaggio), procedere come segue:

    1. Per Message structure (Struttura dei messaggi), scegliere Identical payload for all delivery protocols (Payload identico per tutti i protocolli di consegna) per inviare lo stesso messaggio a tutti i tipi di protocollo sottoscritti all'argomento. In alternativa, scegliere Custom payload for each delivery protocol (Payload personalizzato per ogni protocollo di consegna) per personalizzare il messaggio per i sottoscrittori di diversi tipi di protocollo. Ad esempio, è possibile immettere un messaggio predefinito per gli abbonati al numero di telefono e un messaggio personalizzato per i sottoscrittori di posta elettronica.

    2. Per Message body to send to the endpoint (Corpo del messaggio da inviare all'endpoint), immettere il messaggio o i messaggi personalizzati per protocollo di recapito.

      Se il tuo argomento ha un nome visualizzato, Amazon SNS lo aggiunge al messaggio, aumentando così la lunghezza del messaggio. La lunghezza del nome visualizzato dipende dal numero di caratteri nel nome più due per la parentesi angolare destra (>) e lo spazio aggiunto da Amazon SNS.

      Per informazioni sulle dimensioni massime degli SMS, consulta Pubblicazione di messaggi SMS su un telefono cellulare utilizzando Amazon SNS.

  5. (Facoltativo) Per Message attributes (Attributi di messaggio), aggiungere metadati dei messaggi quali timestamp, firme e ID.

  6. Seleziona Publish message (Pubblica messaggio). Amazon SNS invia il messaggio SMS e ne visualizza quindi la conferma.

Invio di un messaggio a un argomento utilizzando il AWS SDK

Per utilizzare un AWS SDK, devi configurarlo con le tue credenziali. Per ulteriori informazioni, consulta The shared config and credentials files (File di configurazione e credenziali condivisi) nella Guida per l'utente SDK e strumenti AWS .

Il codice di esempio seguente mostra come fare per:

  • Creazione di un argomento Amazon SNS.

  • Sottoscrivere un numero di telefono cellulare all’argomento.

  • Pubblicazione di messaggi SMS nell’argomento in modo che tutti i numeri di telefono sottoscritti ricevano il messaggio in una sola volta.

Java
SDK per Java 2.x
Nota

C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS.

Creare un argomento e restituire il suo 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 ""; } }

Sottoscrivere un endpoint a un argomento.

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

Impostare gli attributi del messaggio, ad esempio l’ID del mittente, il prezzo massimo e il relativo tipo. Gli attributi del messaggio sono facoltativi.

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

Pubblicare un messaggio in un argomento. Il messaggio viene inviato a ogni abbonato.

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

Pubblicazione di messaggi SMS su un telefono cellulare utilizzando Amazon SNS

Puoi utilizzare Amazon SNS per inviare messaggi SMS direttamente a un telefono cellulare senza sottoscrivere il numero di telefono a un argomento Amazon SNS.

Nota

La sottoscrizione di numeri di telefono a un argomento è utile se desideri inviare un messaggio a più numeri di telefono contemporaneamente. Per istruzioni sulla pubblicazione di un messaggio SMS in un argomento, consulta Pubblicazione di messaggi SMS su un argomento di Amazon SNS.

Quando invii un messaggio, puoi controllare se è ottimizzato relativamente al costo e all'affidabilità della consegna. È anche possibile specificare un sender ID or origination number (ID mittente o numero di origine). Se invii il messaggio in modo programmatico utilizzando l'API Amazon SNS o gli AWS SDK, puoi specificare un prezzo massimo per la consegna del messaggio.

Ogni messaggio SMS può contenere fino a 140 byte, mentre la quota di caratteri dipende dallo schema di codifica. Ad esempio, un messaggio SMS può contenere:

  • 160 caratteri GSM

  • 140 caratteri ASCII

  • 70 caratteri UCS-2

Se il messaggio supera la quota della dimensione, Amazon SNS lo invia sotto forma di più messaggi, ciascuno nel rispetto della quota della dimensione indicata. I messaggi non vengono troncati nel mezzo di una parola ma tra una parola e l'altra. Le quota della dimensione totale massima di una singola pubblicazione SMS è di 1600 byte.

Quando si invia un messaggio SMS, si specifica il numero di telefono utilizzando il E.164 formato, una struttura di numerazione telefonica standard utilizzata per le telecomunicazioni internazionali. I numeri di telefono che seguono questo formato possono avere un massimo di 15 cifre oltre al prefisso con il segno più (+) e il prefisso del paese. Ad esempio, un numero di telefono statunitense in E.164 formato è +1XXX5550100.

Invio di un messaggio (Console)

  1. Accedi alla console Amazon SNS.

  2. Nel menu della console, scegli una regione che supporti la messaggistica SMS.

  3. Nel riquadro di navigazione, seleziona Text messaging (SMS) (SMS).

  4. Nella pagina Messaggi di testo per dispositivi mobili (SMS) scegli Pubblicazione di testo.

  5. Nella pagina Pubblicazione di messaggi SMS, per Tipo di messaggio scegliere una delle opzioni seguenti:

    • Promozionali: Non-critical messaggi, ad esempio messaggi di marketing.

    • Transactional (Transazionali) - Messaggi critici che supportano le transazioni dei clienti, come le password monouso per l'autenticazione a più fattori.

    Nota

    Questa impostazione a livello di messaggio sostituisce il tipo di messaggio predefinito a livello di account. È possibile impostare un tipo di messaggio predefinito a livello di account dalla sezione Preferenze di messaggistica della pagina Messaggi di testo per dispositivi mobili (SMS).

    Per informazioni sulle tariffe relative a messaggi promozionali e transazionali, consulta la pagina relativa alle tariffe SMS globali.

  6. In Number (Numero), inserisci il numero di telefono al quale vuoi inviare il messaggio.

  7. In Message (Messaggio), inserisci il testo da inviare.

  8. (Facoltativo) Su Identità di origine, specificare come identificarsi ai destinatari:

    • Per specificare l'ID mittente, digita un ID personalizzato contenente da 3 a 11 caratteri alfanumerici, tra cui almeno una lettera e nessuno spazio. L'ID mittente viene visualizzato come mittente del messaggio sul dispositivo ricevente. Ad esempio, puoi utilizzare il tuo marchio commerciale per rendere più facilmente riconoscibile l'origine del messaggio.

      Il supporto per gli ID mittente varia in base al Paese e all' and/or area geografica. Ad esempio, i messaggi recapitati a U.S. numeri di telefono non visualizzeranno l'ID mittente. Per i Paesi e le aree geografiche che supportano gli ID mittente, vedi Paesi e aree geografiche supportati per la messaggistica SMS con AWS End User Messaging SMS nella Guida per l'AWS End User Messaging SMS utente.

      Se non specifichi un ID mittente, una delle seguenti identità verrà visualizzata come identità di origine:

      • Nei paesi che supportano codici lunghi, verrà visualizzato il codice lungo.

      • Nei paesi in cui sono supportati solo gli ID mittente, verrà visualizzato NOTICE (PREAVVISO).

      Tale ID mittente a livello di messaggio sovrascrive l'ID mittente predefinito, che è stato impostato sulla pagina Text messaging preferences (Preferenze messaggi di testo).

    • Per specificare un Numero di origine, inserisci una stringa di 5-14 numeri da visualizzare come numero di telefono del mittente sul dispositivo del ricevitore. Questa stringa deve corrispondere a un numero di origine configurato nel tuo paese Account AWS di destinazione. Il numero di origine può essere un numero 10DLC, un numero verde, un codice lungo da persona a persona o codici brevi. Per ulteriori informazioni, consulta Identità di origine per i messaggi SMS Amazon SNS.

      Se non specifichi un numero di origine, Amazon SNS seleziona un numero di origine da utilizzare per il messaggio di testo SMS, in base alla configurazione di Account AWS .

  9. Se stai inviando messaggi SMS a destinatari in India, espandi Country-specific gli attributi e specifica i seguenti attributi:

    • ID entità — L'ID entità o l'ID entità principale (PE) per l'invio di messaggi SMS ai destinatari in India. Questo ID è una stringa univoca di 1-50 caratteri fornita dalla Telecom Regulatory Authority of India (TRAI) per identificare l'entità registrata presso il TRAI.

    • ID modello — L'ID modello per l'invio di messaggi SMS ai destinatari in India. Questo ID è una TRAI-provided stringa univoca di 1-50 caratteri che identifica il modello che hai registrato presso il TRAI. L'ID modello deve essere associato all'ID mittente specificato per il messaggio.

    Per ulteriori informazioni sull'invio di messaggi SMS a destinatari in India, India, sulla procedura di registrazione dell'ID mittente, consulta la Guida per l'utente. AWS End User Messaging SMS

  10. Seleziona Publish message (Pubblica messaggio).

Suggerimento

Per inviare messaggi SMS da un numero di origine, puoi anche scegliere Numeri di origine nel pannello di navigazione della console Amazon SNS. Scegliere un numero di origine che includa SMS nella colonna Capabilities (Funzionalità), quindi scegliere Pubblicazione di testo.

Invio di un messaggio (AWS SDK)

Per inviare un messaggio SMS utilizzando uno degli AWS SDK, utilizza l'operazione API in tale SDK che corrisponde alla Publish richiesta nell'API Amazon SNS. Con questa richiesta, puoi inviare un messaggio SMS direttamente a un numero di telefono. Puoi anche utilizzare il parametro MessageAttributes per impostare i valori per i seguenti nomi attributo:

AWS.SNS.SMS.SenderID

Un ID personalizzato che contiene da 3 a 11 caratteri alfanumerici o caratteri trattino (-), tra cui almeno una lettera e nessuno spazio. L'ID mittente viene visualizzato come mittente del messaggio sul dispositivo ricevente. Ad esempio, puoi utilizzare il tuo marchio commerciale per aiutare a rendere più facilmente riconoscibile l'origine del messaggio.

Il supporto per gli ID mittente varia in base al paese o alla Regione. Nei messaggi recapitati a numeri di telefono degli Stati Uniti, ad esempio, non viene visualizzato l'ID mittente. Per un elenco dei Paesi o delle aree geografiche che supportano gli ID mittente, consulta Paesi e aree geografiche supportati per la messaggistica SMS con AWS End User Messaging SMS nella Guida per l'utente. AWS End User Messaging SMS

Se non specifichi un ID mittente, il messaggio visualizzerà un codice lungo come ID mittente nei paesi o nelle regioni supportati. Per i paesi o le regioni che richiedono un ID mittente in forma alfabetica, il messaggio visualizza NOTICE (PREAVVISO) come ID mittente.

Questo attributo a livello di messaggio sovrascrive l'attributo a livello di account DefaultSenderID, che può essere impostato tramite la richiesta SetSMSAttributes.

AWS.MM.SMS.OriginationNumber

Una stringa personalizzata di 5-14 numeri, che può includere un segno + iniziale opzionale (+). Questa stringa di numeri viene visualizzata come numero di telefono del mittente sul dispositivo ricevente. La stringa deve corrispondere a un numero di origine configurato nell' AWS account per il paese di destinazione. Il numero di origine può essere un numero 10DLC, un numero verde, un codice lungo persona-persona (P2P) o un codice breve. Per ulteriori informazioni, consulta Numeri di telefono nella Guida per l'AWS End User Messaging SMS utente.

Se non specifichi un numero di origine, Amazon SNS sceglie un numero di origine in base alla configurazione del tuo account. AWS

AWS.SNS.SMS.MaxPrice

L'importo massimo in dollari che sei disposto a spendere per inviare il messaggio SMS. Amazon SNS non invierà il messaggio nel caso in cui il costo dovesse superare il prezzo massimo.

Questo attributo non ha alcun effetto se i costi SMS del mese corrente hanno già superato la quota stabilita per l'attributo MonthlySpendLimit. È possibile impostare MonthlySpendLimit utilizzando l'attributo SetSMSAttributes.

Quando invii il messaggio a un argomento Amazon SNS, a ogni messaggio inviato viene applicato il prezzo massimo a ognuno dei numeri di telefono sottoscritti a un dato argomento.

AWS.SNS.SMS.SMSType

Tipo di messaggio che intendi inviare:

  • Promotional— Non-critical messaggi, ad esempio messaggi di marketing.

  • Transactional(impostazione predefinita) — Messaggi critici che supportano le transazioni dei clienti, come i codici di accesso monouso per l'autenticazione a più fattori.

Questo attributo a livello di messaggio sovrascrive l'attributo a livello di account DefaultSMSType, che può essere impostato tramite la richiesta SetSMSAttributes.

AWS.MM.SMS.EntityId

Questo attributo è necessario solo per l'invio di messaggi SMS ai destinatari in India.

ID entità o ID entità principale (PE) per l'invio di messaggi SMS ai destinatari in India. Questo ID è una stringa univoca di 1-50 caratteri fornita dalla Telecom Regulatory Authority of India (TRAI) per identificare l'entità registrata presso il TRAI.

AWS.MM.SMS.TemplateId

Questo attributo è necessario solo per l'invio di messaggi SMS ai destinatari in India.

Questo è il modello per inviare messaggi SMS ai destinatari in India. Questo ID è una TRAI-provided stringa univoca di 1-50 caratteri che identifica il modello che hai registrato presso il TRAI. L'ID modello deve essere associato all'ID mittente specificato per il messaggio.

Invio di un messaggio

Negli esempi di codice seguenti viene illustrato come pubblicare messaggi SMS utilizzando Amazon SNS.

.NET
SDK per .NET
Nota

C'è altro su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice 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}"); } } } }
  • Per informazioni dettagliate sull’API, consulta Pubblicazione nella documentazione di riferimento dell’API AWS SDK per .NET .

C++
SDK per C++
Nota

C'è dell'altro GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice 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(); }
  • Per informazioni dettagliate sull’API, consulta Pubblicazione nella documentazione di riferimento dell’API AWS SDK per C++ .

Java
SDK per Java 2.x
Nota

C'è dell'altro GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice 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); } } }
  • Per informazioni dettagliate sull’API, consulta Pubblicazione nella documentazione di riferimento dell’API AWS SDK for Java 2.x .

Kotlin
SDK per Kotlin
Nota

C'è dell'altro GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice 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.") } }
  • Per informazioni dettagliate sull’API, consulta Pubblicazione nella documentazione di riferimento dell’API AWS SDK per Kotlin.

PHP
SDK per PHP
Nota

C'è dell'altro GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice 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
SDK per Python (Boto3)
Nota

C'è dell'altro GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice 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
  • Per informazioni dettagliate sull’API, consulta Pubblicazione nella documentazione di riferimento dell’API SDK for Python (Boto3)AWS .

SAP ABAP
SDK per SAP ABAP
Nota

C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice 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.
  • Per informazioni dettagliate sulle API, consulta Publish nella documentazione di riferimento dell'SDK AWS per l'API SAP ABAP.