

La AWS SDK per JavaScript v2 è arrivata. end-of-support [Ti consigliamo di migrare alla AWS SDK per JavaScript v3.](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/) [Per ulteriori dettagli e informazioni su come effettuare la migrazione, consulta questo annuncio.](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)

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 con Amazon SNS
<a name="sns-examples-sending-sms"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/it_it/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Questo esempio di codice di Node.js illustra:**
+ Come ottenere e impostare le preferenze di messaggistica SMS per Amazon SNS.
+ Come controllare un numero di telefono per verificare se è stata disattivata la ricezione di messaggi SMS.
+ Come ottenere un elenco di numeri di telefono per cui è stata disattivata la ricezione di messaggi SMS.
+ Come inviare un messaggio SMS.

## Lo scenario
<a name="sns-examples-sending-sms-scenario"></a>

Puoi utilizzare Amazon SNS; per inviare messaggi SMS a dispositivi abilitati. Puoi inviare un messaggio direttamente a un numero di telefono oppure inviarlo a più numeri contemporaneamente sottoscrivendo quei numeri a un argomento e inviando il messaggio all'argomento.

In questo esempio, utilizzi una serie di moduli Node.js per pubblicare messaggi di testo SMS da Amazon SNS a dispositivi abilitati all'invio di SMS. I moduli Node.js utilizzano l'SDK per JavaScript pubblicare messaggi SMS utilizzando questi metodi della classe client: `AWS.SNS`
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#getSMSAttributes-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#getSMSAttributes-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setSMSAttributes-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setSMSAttributes-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#checkIfPhoneNumberIsOptedOut-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#checkIfPhoneNumberIsOptedOut-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listPhoneNumbersOptedOut-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listPhoneNumbersOptedOut-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property)

## Attività prerequisite
<a name="sns-examples-sending-sms-prerequisites"></a>

Per configurare ed eseguire questo esempio, è necessario completare queste attività:
+ Installa Node.js. Per ulteriori informazioni sull'installazione di Node.js, consulta il [sito Web Node.js](http://nodejs.org).
+ Creazione di un file di configurazione condiviso con le credenziali utente. Per ulteriori informazioni su come fornire file JSON di credenziali, consulta [Caricamento delle credenziali su Node.js dal file delle credenziali condiviso](loading-node-credentials-shared.md).

## Recupero degli attributi SMS
<a name="sending-sms-getattributes"></a>

Usa Amazon SNS per specificare le preferenze per la messaggistica SMS, ad esempio il modo in cui le consegne sono ottimizzate (in termini di costi o per una consegna affidabile), il limite di spesa mensile, il modo in cui vengono registrate le consegne dei messaggi e se abbonarsi ai report giornalieri sull'utilizzo degli SMS. Queste preferenze vengono recuperate e impostate come attributi SMS per Amazon SNS.

In questo esempio, usa un modulo Node.js per ottenere gli attributi SMS correnti in Amazon SNS. Crea un modulo Node.js con il nome del file `sns_getsmstype.js`. Configura l'SDK come mostrato in precedenza. Crea un oggetto contenente i parametri per ottenere attributi SMS, inclusi i nomi dei singoli attributi da recuperare. Per i dettagli sugli attributi SMS disponibili, consulta [Set SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) in the Amazon Simple Notification Service API Reference.

Questo esempio recupera l'attributo `DefaultSMSType`, che controlla se i messaggi SMS vengono inviati come `Promotional` per ottimizzare il recapito dei messaggi e permettere di contenere i costi, oppure come `Transactional` per ottimizzare il recapito dei messaggi e ottenere la massima affidabilità. Trasferisci i parametri al metodo `setTopicAttributes` della classe client `AWS.SNS`. Per chiamare il `getSMSAttributes` metodo, crea una promessa per richiamare un oggetto di servizio Amazon SNS, passando l'oggetto parameters. Quindi gestisci l'oggetto `response` nel callback della promessa.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create SMS Attribute parameter you want to get
var params = {
  attributes: [
    "DefaultSMSType",
    "ATTRIBUTE_NAME",
    /* more items */
  ],
};

// Create promise and SNS service object
var getSMSTypePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .getSMSAttributes(params)
  .promise();

// Handle promise's fulfilled/rejected states
getSMSTypePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Digita la seguente riga di comando per eseguire l'esempio.

```
node sns_getsmstype.js
```

Questo codice di esempio può essere trovato [qui](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_getsmstype.js) su. GitHub

## Impostazione degli attributi SMS
<a name="sending-sms-setattributes"></a>

In questo esempio, usa un modulo Node.js per ottenere gli attributi SMS correnti in Amazon SNS. Crea un modulo Node.js con il nome del file `sns_setsmstype.js`. Configura l'SDK come mostrato in precedenza. Crea un oggetto contenente i parametri per impostare gli attributi SMS, inclusi i nomi dei singoli attributi da impostare e i valori da impostare per ciascuno di essi. Per i dettagli sugli attributi SMS disponibili, consulta [Set SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) in the Amazon Simple Notification Service API Reference.

Questo esempio imposta l'attributo `DefaultSMSType` su `Transactional`, ottimizzando il recapito dei messaggi per ottenere la massima affidabilità. Trasferisci i parametri al metodo `setTopicAttributes` della classe client `AWS.SNS`. Per chiamare il `getSMSAttributes` metodo, crea una promessa per richiamare un oggetto di servizio Amazon SNS, passando l'oggetto parameters. Quindi gestisci l'oggetto `response` nel callback della promessa.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create SMS Attribute parameters
var params = {
  attributes: {
    /* required */
    DefaultSMSType: "Transactional" /* highest reliability */,
    //'DefaultSMSType': 'Promotional' /* lowest cost */
  },
};

// Create promise and SNS service object
var setSMSTypePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .setSMSAttributes(params)
  .promise();

// Handle promise's fulfilled/rejected states
setSMSTypePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Digita la seguente riga di comando per eseguire l'esempio.

```
node sns_setsmstype.js
```

Questo codice di esempio può essere trovato [qui](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_setsmstype.js) su. GitHub

## Controllare se un numero di telefono è stato disattivato
<a name="sending-sms-checkifphonenumberisoptedout"></a>

In questo esempio, utilizza un modulo Node.js per controllare un numero di telefono per verificare se è stata disattivata la ricezione di messaggi SMS. Crea un modulo Node.js con il nome del file `sns_checkphoneoptout.js`. Configura l'SDK come mostrato in precedenza. Crea un oggetto contenente il numero di telefono da controllare come parametro.

Questo esempio imposta il parametro `PhoneNumber` per specificare il numero di telefono da verificare. Trasferisci l'oggetto al metodo `checkIfPhoneNumberIsOptedOut` della classe client `AWS.SNS`: Per chiamare il `checkIfPhoneNumberIsOptedOut` metodo, crea una promessa per richiamare un oggetto di servizio Amazon SNS, passando l'oggetto parameters. Quindi gestisci l'oggetto `response` nel callback della promessa.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SNS service object
var phonenumPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .checkIfPhoneNumberIsOptedOut({ phoneNumber: "PHONE_NUMBER" })
  .promise();

// Handle promise's fulfilled/rejected states
phonenumPromise
  .then(function (data) {
    console.log("Phone Opt Out is " + data.isOptedOut);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Digita la seguente riga di comando per eseguire l'esempio.

```
node sns_checkphoneoptout.js
```

Questo codice di esempio può essere trovato [qui](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_checkphoneoptout.js) su. GitHub

## Elenco di numeri di telefono disattivati
<a name="sending-sms-listphonenumbersoptedout"></a>

In questo esempio, utilizza un modulo Node.js per ottenere un elenco di numeri di telefono per cui è stata disattivata la ricezione di messaggi SMS. Crea un modulo Node.js con il nome del file `sns_listnumbersoptedout.js`. Configura l'SDK come mostrato in precedenza. Crea un oggetto vuoto come parametro.

Trasferisci l'oggetto al metodo `listPhoneNumbersOptedOut` della classe client `AWS.SNS`: Per chiamare il `listPhoneNumbersOptedOut` metodo, crea una promessa per richiamare un oggetto di servizio Amazon SNS, passando l'oggetto parameters. Quindi gestisci l'oggetto `response` nel callback della promessa.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SNS service object
var phonelistPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .listPhoneNumbersOptedOut({})
  .promise();

// Handle promise's fulfilled/rejected states
phonelistPromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Digita la seguente riga di comando per eseguire l'esempio.

```
node sns_listnumbersoptedout.js
```

Questo codice di esempio può essere trovato [qui](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_listnumbersoptedout.js) su. GitHub

## Pubblicazione di un messaggio SMS
<a name="sending-sms-publishsms"></a>

In questo esempio, utilizza un modulo Node.js per inviare un messaggio SMS a un numero di telefono. Crea un modulo Node.js con il nome del file `sns_publishsms.js`. Configura l'SDK come mostrato in precedenza. Crea un oggetto contenente i parametri `Message` e `PhoneNumber`.

Quando invii un SMS, ricorda di specificare il numero di telefono utilizzando il formato E.164. E.164 è uno standard per la struttura del numero di telefono utilizzato per le telecomunicazioni internazionali. I numeri di telefono che seguono questo formato possono avere un massimo di 15 cifre e sono preceduti dal segno più (\$1) e dal prefisso internazionale. Ad esempio, un numero di telefono statunitense in formato E.164 apparirebbe come XXX5550100 \$11001. 

Questo esempio imposta il parametro `PhoneNumber` per specificare il numero di telefono a cui inviare il messaggio. Trasferisci l'oggetto al metodo `publish` della classe client `AWS.SNS`: Per chiamare il `publish` metodo, crea una promessa per richiamare un oggetto di servizio Amazon SNS, passando l'oggetto parameters. Quindi gestisci l'oggetto `response` nel callback della promessa.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create publish parameters
var params = {
  Message: "TEXT_MESSAGE" /* required */,
  PhoneNumber: "E.164_PHONE_NUMBER",
};

// Create promise and SNS service object
var publishTextPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .publish(params)
  .promise();

// Handle promise's fulfilled/rejected states
publishTextPromise
  .then(function (data) {
    console.log("MessageID is " + data.MessageId);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Digita la seguente riga di comando per eseguire l'esempio.

```
node sns_publishsms.js
```

Questo codice di esempio può essere trovato [qui](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_publishsms.js) su. GitHub