

**Avviso di fine del supporto:** il 30 ottobre 2026, AWS terminerà il supporto per Amazon Pinpoint. Dopo il 30 ottobre 2026, non potrai più accedere alla console Amazon Pinpoint o alle risorse Amazon Pinpoint (endpoint, segmenti, campagne, percorsi e analisi). Per ulteriori informazioni, consulta [Fine del supporto di Amazon Pinpoint](https://docs.aws.amazon.com/console/pinpoint/migration-guide). **Nota: per quanto** APIs riguarda gli SMS, i comandi vocali, i messaggi push su dispositivi mobili, l'OTP e la convalida del numero di telefono non sono interessati da questa modifica e sono supportati da End User Messaging. AWS 

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à.

# Tutorial
<a name="tutorials"></a>

I tutorial in questa sezione sono concepiti per mostrare ai nuovi utenti di Amazon Pinpoint come svolgere varie importanti attività. Se non conosci ancora Amazon Pinpoint oppure se hai poca familiarità con determinate funzionalità, questi tutorial sono un ottimo modo per iniziare.

I tutorial in questa guida includono attività orientate verso un pubblico di amministratori di sistema o sviluppatori. Questi tutorial mostrano come eseguire attività utilizzando l'API Amazon Pinpoint, il e AWS SDKs il. AWS CLI

**Topics**
+ [Utilizzo di Postman con Amazon Pinpoint](tutorials-using-postman.md)
+ [Configura un sistema di registrazione SMS](tutorials-two-way-sms.md)

# Tutorial: utilizzo di Postman con l'API Amazon Pinpoint
<a name="tutorials-using-postman"></a>

Postman è uno strumento popolare per i test APIs in un ambiente easy-to-use grafico. È possibile utilizzare Postman per inviare richieste API a qualsiasi API REST e per ricevere le relative risposte. Postman è una soluzione pratica per testare e risolvere i problemi delle chiamate effettuate all'API Amazon Pinpoint. In questo tutorial sono descritte le procedure per la configurazione e l'utilizzo di Postman con Amazon Pinpoint.

**Nota**  
Postman è sviluppato da una società di terze parti. Non è sviluppato o supportato da Amazon Web Services (AWS). Per ulteriori informazioni sull'utilizzo di Postman o per ricevere assistenza per i problemi correlati a questo strumento, consulta il [Centro di supporto](https://support.postman.com/hc/en-us) sul sito Web di Postman.

## Informazioni sul tutorial
<a name="tutorials-using-postman-about"></a>

Questa sezione contiene una panoramica di questo tutorial.

**Destinatari principali**  
Questo tutorial è rivolto a un pubblico di sviluppatori e di implementatori di sistema. Non è necessario avere familiarità con Amazon Pinpoint o Postman per completare le fasi descritte in questo tutorial. È necessario avere dimestichezza con la gestione di policy IAM e con la modifica degli esempi di codice JSON.

Le procedure in questo tutorial sono state pensate per impedire ai nuovi utenti di utilizzare le operazioni API in grado di eliminare definitivamente le risorse Amazon Pinpoint. Gli utenti esperti possono rimuovere questa limitazione modificando la policy associata ai propri utenti .

**Caratteristiche utilizzate**  
Questo tutorial include esempi di utilizzo della seguente funzionalità di Amazon Pinpoint:
+ Interazione con l'API Amazon Pinpoint tramite Postman

**Tempo richiesto**  
Il completamento di questo tutorial richiede circa 15 minuti.

**Limitazioni regionali**  
Non sono previste limitazioni regionali associati all'utilizzo di questa soluzione.

**Costi di utilizzo delle risorse**  
La creazione di un AWS account è gratuita. Tuttavia, implementando questa soluzione, potresti incorrere in costi di AWS utilizzo se utilizzi Postman per eseguire una delle seguenti operazioni:
+ Inviare e-mail, SMS, push su dispositivi mobili o messaggi vocali
+ Creare e inviare campagne
+ Utilizzare la funzione di convalida del numero di telefono

Per ulteriori informazioni sui costi associati all'utilizzo di Amazon Pinpoint, consulta [Prezzi di Amazon Pinpoint](https://aws.amazon.com/pinpoint/pricing/).

# Prerequisiti per l'utilizzo di Postman con Amazon Pinpoint
<a name="tutorials-using-postman-prerequisites"></a>

Prima di iniziare questo tutorial, completare i prerequisiti descritti di seguito:
+ Devi avere un AWS account. Per creare un AWS account, vai su [https://console.aws.amazon.com/](https://console.aws.amazon.com/)e scegli **Crea un nuovo AWS account**.
+ Assicurati che l'account che usi per accedere Console di gestione AWS possa creare nuove politiche e ruoli IAM.
+ Assicurati di aver creato almeno un progetto di esempio con la funzionalità e-mail attivata e un'identità e-mail verificata. Consulta [Creazione di un progetto Amazon Pinpoint con supporto e-mail ](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-create.html) nella *Guida per l'utente di Amazon Pinpoint*.
+ Assicurati di avere un ID AWS account. L'ID del tuo AWS account si trova nell'angolo in alto a destra della console oppure puoi utilizzare l'interfaccia a riga di comando (CLI). Vedi [Come trovare](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId) l'ID del tuo account. AWS 
+ È necessario scaricare e installare Postman sul computer. È possibile scaricare Postman dal [sito Web Postman](https://www.getpostman.com).
+ Dopo aver installato Postman sul computer, crea un account Postman. Al primo avvio dell'applicazione Postman, verrà richiesto di effettuare l'accesso o di creare un nuovo account. Segui le istruzioni fornite da Postman per accedere al tuo account o per creare un account se non lo hai già creato.

[Successivo](tutorials-using-postman-iam-user.md): **Creazione di policy e ruoli IAM**

# Crea policy e ruoli IAM da utilizzare con Amazon Pinpoint
<a name="tutorials-using-postman-iam-user"></a>

Quando usi Postman per testare l'API Amazon Pinpoint, il primo passaggio prevede la creazione di un utente. In questa sezione, dovrai una policy che consenta agli utenti di interagire con tutte le risorse Amazon Pinpoint e quindi creare un utente a cui collegare direttamente la policy.

## Creazione di una policy IAM
<a name="tutorials-using-postman-iam-user-create-policy"></a>

Scopri come creare una policy IAM. Gli utenti e i ruoli che utilizzano questa policy sono in grado di interagire con tutte le risorse nell'API Amazon Pinpoint. Tale policy consente inoltre l'accesso alle risorse associate alle API E-mail e SMS e Voce di Amazon Pinpoint.

**Come creare la policy**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione, scegli **Policy** e **Crea policy**.

1. Nell'**editor delle politiche**, seleziona **JSON**. Elimina qualsiasi codice JSON corrente nell'**editor delle politiche** in modo che sia vuoto. Copia e incolla il seguente codice JSON nell'editor delle **politiche, quindi nell'editor** delle **politiche** sostituisci tutte le istanze di *123456789012* con il tuo ID. Account AWS 

   Il tuo Account AWS ID si trova nell'angolo in alto a destra della console oppure puoi usare la CLI, vedi [Trovare l'ID del tuo AWS account](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
**Nota**  
Per proteggere i dati nell'account Amazon Pinpoint, questa policy include solo le autorizzazioni che consentono la lettura, la creazione e la modifica delle risorse. Non include le autorizzazioni che consentono l'eliminazione delle risorse. È possibile modificare questa policy utilizzando l'editor visivo nella console IAM. Per ulteriori informazioni, consulta [Gestione di policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) nella Guida per l'utente di IAM. Puoi anche utilizzare l'[CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html)operazione nell'API IAM per aggiornare questa policy.  
È inoltre importante tenere presente che questa policy include autorizzazioni che consentono di interagire con i servizi `ses` e `sms-voice`, oltre al servizio `mobiletargeting`. Le autorizzazioni `ses` e `sms-voice` consentono di interagire rispettivamente con le API E-mail e SMS e Voce di Amazon Pinpoint. Le autorizzazioni `mobiletargeting` consentono di interagire con l'API Amazon Pinpoint.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "mobiletargeting:Update*",
                   "mobiletargeting:Get*",
                   "mobiletargeting:Send*",
                   "mobiletargeting:Put*",
                   "mobiletargeting:Create*"
               ],
               "Resource": [
                   "arn:aws:mobiletargeting:*:123456789012:apps/*",
                   "arn:aws:mobiletargeting:*:123456789012:apps/*/campaigns/*",
                   "arn:aws:mobiletargeting:*:123456789012:apps/*/segments/*"
               ]
           },
           {
               "Sid": "VisualEditor1",
               "Effect": "Allow",
               "Action": [
                   "mobiletargeting:TagResource",
                   "mobiletargeting:PhoneNumberValidate",
                   "mobiletargeting:ListTagsForResource",
                   "mobiletargeting:CreateApp"
               ],
               "Resource": "arn:aws:mobiletargeting:*:123456789012:*"
           },
           {
               "Sid": "VisualEditor2",
               "Effect": "Allow",
               "Action": [
                   "ses:TagResource",
                   "ses:Send*",
                   "ses:Create*",
                   "ses:Get*",
                   "ses:List*",
                   "ses:Put*",
                   "ses:Update*",
                   "sms-voice:SendVoiceMessage",
                   "sms-voice:List*",
                   "sms-voice:Create*",
                   "sms-voice:Get*",
                   "sms-voice:Update*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   Scegli **Next (Successivo)**.

1. Per **Nome della politica**, inserisci un nome per la politica, ad esempio**PostmanAccessPolicy**. Scegli **Crea policy**.

1. (Facoltativo) Puoi aggiungere tag alla policy selezionando **Aggiungi tag**.

1. Scegli **Prossimo: Rivedi**.

## Creare un utente IAM
<a name="tutorials-using-postman-iam-user-create-user"></a>

**avvertimento**  
Gli utenti IAM dispongono di credenziali a lungo termine, il che rappresenta un rischio per la sicurezza. Per ridurre questo rischio, si consiglia di fornire a questi utenti solo le autorizzazioni necessarie per eseguire l'attività e di rimuoverli quando non sono più necessari.

Dopo aver creato la policy, è possibile creare un utente a cui collegarla. Quando crei l'utente, IAM fornisce un set di credenziali da utilizzare per consentire a Postman di eseguire operazioni dell'API Amazon Pinpoint.

**Per creare l'utente**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Sulla console IAM, nel riquadro di navigazione, scegli **Utenti**, quindi scegli **Crea utenti**.

1. In **Dettagli utente**, nel campo **Nome utente**, immetti un nome che identifichi l'account utente, come **PostmanUser**. Quindi scegli **Successivo**.

1. In **Imposta autorizzazioni**, nel campo **Opzioni delle autorizzazioni**, scegli **Allega direttamente le policy**. 

1. In **Politiche di autorizzazione**, scegli la policy (**PostmanAccessPolicy**) che hai creato in [Crea una policy IAM](#tutorials-using-postman-iam-user-create-policy). Quindi scegli **Successivo**.

1. Nella pagina **Rivedi e crea**, puoi facoltativamente aggiungere tag per semplificare l'identificazione dell'utente. Per ulteriori informazioni sull'utilizzo di tag, consulta la sezione [Tagging delle risorse IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) nella *Guida per l'utente di IAM*. 

1. Quando si è pronti per creare l'utente, scegliere **Create user (Crea utente)**.

## Crea chiavi di accesso
<a name="tutorials-using-postman-iam-user-create-key"></a>

**avvertimento**  
Questo scenario richiede agli utenti IAM un accesso programmatico e credenziali a lungo termine, il che rappresenta un rischio per la sicurezza. Per ridurre questo rischio, si consiglia di fornire a questi utenti solo le autorizzazioni necessarie per eseguire l'attività e di rimuoverli quando non sono più necessari. Le chiavi di accesso possono essere aggiornate se necessario. Per ulteriori informazioni, consulta la sezione [Aggiornamento delle chiavi di accesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-credentials-access-keys-update.html) nella *Guida per l'utente IAM*.

 IAM fornisce un set di credenziali che puoi utilizzare per consentire a Postman di eseguire operazioni dell'API Amazon Pinpoint.

**Per creare l'utente**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione della console IAM, scegli **Utenti**. Seleziona l'utente (**PostmanUser**) creato in [Crea un utente IAM](#tutorials-using-postman-iam-user-create-user), quindi seleziona la scheda **Credenziali di sicurezza**.

1. Nella sezione **Chiavi di accesso**, scegliere **Crea chiave di accesso**.

1. Nella pagina **Access key best practice e alternative**, seleziona **Applicazione in esecuzione all'esterno AWS**. 

   Quindi scegli **Successivo**.

1. (Facoltativo) Puoi aggiungere un tag descrittivo alla policy.

1. Selezionare **Create access key (Crea chiave di accesso)**.

1. Nella pagina **Recupera le chiavi di accesso**, copia le credenziali visualizzate nelle colonne **Chiave di accesso** e **Chiave di accesso segreta**.
**Nota**  
È necessario fornire sia l'ID chiave di accesso sia la chiave di accesso segreta più avanti in questo tutorial. Questa è l'unica volta in cui è possibile visualizzare la chiave di accesso segreta. Ti consigliamo di copiarla e conservarla in un luogo sicuro.

1. Dopo aver salvato entrambe le chiavi, scegli **Fatto**.

**Successivo**: [Configurazione di Postman](tutorials-using-postman-configuration.md)

# Configurare Postman per l'utilizzo con Amazon Pinpoint
<a name="tutorials-using-postman-configuration"></a>

Dopo aver creato un account utente in grado di accedere all'API Amazon Pinpoint, puoi configurare Postman. In questa sezione, crea uno o più ambienti in Postman. Quindi, importa una raccolta contenente modello di richiesta di ciascuna delle operazioni nell'API Amazon Pinpoint.

## Crea uno spazio di lavoro Postman
<a name="tutorials-using-postman-configuration-create-workspace"></a>

In Postman, un *workspace* è un container organizzativo per progetti e ambienti. In questa sezione, dovrai creare almeno un workspace da utilizzare con Amazon Pinpoint.

**Creare un'area di lavoro**

In Postman, scegli Altre azioni, quindi seleziona **File**, **Nuovo**.

1. Nella finestra **Crea nuovo**, scegli **Workspace**.

1. Inserisci un nome, un riepilogo e imposta la visibilità su Personale. Quindi, scegli **Crea workspace**.

## Crea ambienti Postman
<a name="tutorials-using-postman-configuration-create-environments"></a>

In Postman, un *ambiente* è un set di variabili che vengono memorizzate come coppie chiave-valore. È possibile utilizzare gli ambienti per modificare la configurazione delle richieste effettuate tramite Postman, senza dover modificare le richieste API.

In questa sezione, dovrai creare almeno un ambiente da utilizzare con Amazon Pinpoint. Ogni ambiente creato contiene un set di variabili specifiche per l'account in un'unica Regione AWS. Se utilizzi le procedure di questa sezione per creare più di un ambiente, puoi passare da una regione a un'altra selezionando un ambiente diverso nel menu **Ambiente** in Postman.

**Come creare un ambiente**

1. In Postman, scegli il menu Altre azioni, quindi seleziona **File**, **Nuovo**.

1. Nella finestra **Create New (Crea nuovo)**, scegliere **Environment (Ambiente)**.

1. Nella finestra **MANAGE ENVIRONMENTS (GESTISCI AMBIENTI)**, per **Environment Name (Nome ambiente)**, inserire **Amazon Pinpoint - *Region Name***. Sostituisci *Region Name* con uno dei seguenti valori:
   + Stati Uniti orientali (Virginia settentrionale)
   + Stati Uniti occidentali (Oregon)
   + Asia Pacifico (Mumbai)
   + Asia Pacifico (Sydney)
   + Europa (Francoforte)
   + Europa (Irlanda)
**Nota**  
È necessario creare almeno un ambiente per ogni singolo ambiente Regione AWS, che Regione AWS deve contenere un solo progetto. Se non hai creato un progetto in uno dei progetti elencati in precedenza Regioni AWS, consulta [Creazione di un progetto Amazon Pinpoint con supporto via e-mail](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-create.html) nella Guida per l'utente di *Amazon Pinpoint*.

1. Creare sei nuove variabili: `endpoint`, `region`, `serviceName`, `accountId`, `accessKey` e `secretAccessKey`. Utilizza la tabella seguente per determinare il valore da inserire nelle colonne **Valore iniziale** e **Valore corrente** per ogni variabile.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/tutorials-using-postman-configuration.html)

   Una volta create queste variabili, l'aspetto della finestra **MANAGE ENVIRONMENTS (GESTISCI AMBIENTI)** è simile a quello dell'esempio mostrato nella seguente immagine.  
![\[\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/Postman_Tutorial_2.1_4.png)

   Al termine, scegli **Salva**.
**Importante**  
Le chiavi di accesso mostrate nell'immagine precedente sono fittizie. Non condividere le chiavi di accesso IAM con altri utenti.  
Postman include funzionalità che consentono di condividere ed esportare ambienti. Se utilizzi queste funzionalità, assicurati di non condividere l'ID chiave di accesso e la chiave di accesso segreta con chiunque non debba avere accesso a tali credenziali.  
Per ulteriori informazioni, consultare la sezione [best practice IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente IAM*.

1. (Facoltativo) Ripeti i passaggi da 1 a 4 per ogni altro ambiente che desideri creare.
**Suggerimento**  
In Postman, è possibile creare tutti gli ambienti di cui si ha bisogno. Puoi utilizzare gli ambienti nei seguenti modi:  
Creare un ambiente separato per ogni regione in cui è necessario testare l'API Amazon Pinpoint.
Creare ambienti associati a diversi Account AWS.
Creare ambienti che utilizzano credenziali associate a un altro utente.

1. Una volta terminata la creazione di ambienti, procedere alla sezione successiva.

## Crea una raccolta Amazon Pinpoint in Postman
<a name="tutorials-using-postman-configuration-create-pinpoint-collection"></a>

In Postman, una *raccolta* è un gruppo di richieste API. Le richieste in una raccolta sono in genere unite da uno scopo comune. In questa sezione, dovrai creare una nuova raccolta contenente un modello di richiesta per ciascuna operazione nell'API Amazon Pinpoint.

**Per creare la raccolta Amazon Pinpoint**

1. In Postman, scegli il menu Altre azioni, quindi seleziona **File**, **Importa**.

1. Nella finestra **Importa, scegli Importa** **da link**, quindi inserisci il seguente URL: [https://raw.githubusercontent.com/awsdocs/amazon-pinpoint-developer-guide/master/Amazon](https://raw.githubusercontent.com/awsdocs/amazon-pinpoint-developer-guide/master/Amazon%20Pinpoint.postman_collection.json) %20Pinpoint.postman\$1collection.json. 

   Scegli **Importa**. Postman importa la raccolta Amazon Pinpoint, contenente 120 richieste di esempio.

## Test della configurazione di Postman
<a name="tutorials-using-postman-configuration-test-operation"></a>

Dopo aver importato la raccolta Amazon Pinpoint, è consigliabile eseguire un test rapido per verificare la corretta configurazione di tutti i componenti. È possibile provare la configurazione inviando una richiesta `GetApps`. Questa richiesta restituisce l'elenco di tutti i progetti esistenti nell'account Amazon Pinpoint nella Regione AWS attuale. Questa richiesta non necessita di configurazioni aggiuntive e per tale motivo rappresenta un valido modo per testare la configurazione.

**Per testare la configurazione della raccolta Amazon Pinpoint**

1. Nel riquadro di navigazione, seleziona **Raccolte**, espandi la raccolta **Amazon Pinpoint** e quindi espandi la cartella **App**.

1. Nell'**GetApps**elenco delle richieste, scegli.

1. Usa il selettore **Ambiente** per scegliere l'ambiente che hai creato in Ambienti [Create Postman](#tutorials-using-postman-configuration-create-environments).

1. Scegli **Invia**. Se la richiesta viene inviata correttamente, il riquadro di risposta mostra lo stato `200 OK`. Viene visualizzata una risposta simile all'esempio riportato nella seguente immagine.  
![\[\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/Postman_Tutorial_2.3_3.png)
**Nota**  
Se non hai creato alcun progetto nel, Regione AWS restituisce Amazon Pinpoint. `{ "Item": [] }`

   Questa risposta mostra l'elenco di tutti i progetti Amazon Pinpoint esistenti nell'account nella regione scelta al Passaggio 3.

### Risoluzione dei problemi
<a name="tutorials-using-postman-configuration-test-operation-troubleshooting"></a>

Quando invii la richiesta, è possibile che venga visualizzato un errore. Di seguito sono elencati i diversi errori comuni che possono verificarsi e le relative fasi per la risoluzione.


| Messaggio di errore | Problema | Risoluzione | 
| --- | --- | --- | 
|  Could not get any response (Impossibile ottenere una risposta) Si è verificato un errore durante la connessione a https://%7B%7Bendpoint%7D%7D/v1/apps.  |  Non esiste alcun valore attuale per la variabile `{{endpoint}}`, che è impostata quando scegli un ambiente.  | Utilizza il selettore di ambiente per scegliere un ambiente. | 
|  Il token di sicurezza incluso nella richiesta non è valido.  |  Postman non era in grado di individuare il valore attuale dell'ID chiave di accesso o della chiave di accesso segreta.  |  Scegli l'icona a forma di ingranaggio accanto al selettore di ambiente e quindi scegli l'ambiente attuale. Assicurati che i valori `accessKey` e `secretAccessKey` vengano visualizzati in entrambe le colonne **VALORE INIZIALE** e **VALORE CORRENTE** e verifica di aver inserito le credenziali correttamente.  | 
|  «Message»: «Utente: arn:aws:iam: :123456789012:user/ non PinpointPostmanUser è autorizzato a eseguire: mobiletargeting: on resource: arn:aws:mobiletargeting:us-west- 2:123456789012: \$1» GetApps   |  La policy IAM associata all'utente non include le autorizzazioni appropriate.  |  [[Verifica che il tuo utente disponga delle autorizzazioni descritte in Creare una policy IAM e di aver fornito le credenziali corrette quando hai creato l'ambiente nell'area di lavoro Create Postman.](#tutorials-using-postman-configuration-create-environments)](tutorials-using-postman-iam-user.md#tutorials-using-postman-iam-user-create-policy)  | 

**Successivo**: [Invio di richieste aggiuntive](tutorials-using-postman-sample-requests.md)

# Inviare richieste all'API Amazon Pinpoint
<a name="tutorials-using-postman-sample-requests"></a>

Al termine della configurazione e del test di Postman, è possibile iniziare a inviare richieste aggiuntive all'API Amazon Pinpoint. In questa sezione sono incluse informazioni che è necessario conoscere prima di iniziare a inviare le richieste. Include anche due richieste di esempio che descrivono come utilizzare la raccolta Amazon Pinpoint.

**Importante**  
Dopo aver completato le procedure di questa sezione, è possibile inviare richieste all'API Amazon Pinpoint. Tali richieste creano nuove risorse nell'account Amazon Pinpoint, modificano le risorse esistenti, inviano messaggi, modificano la configurazione dei progetti Amazon Pinpoint e utilizzare altre funzionalità di Amazon Pinpoint. Presta attenzione quando esegui queste richieste.

## Esempi nella raccolta Amazon Pinpoint Postman
<a name="tutorials-using-postman-sample-requests-about"></a>

Prima di poterle utilizzare, è necessario configurare la maggior parte delle operazioni nel file di raccolta Postman di Amazon Pinpoint. Per le operazioni `GET` e `DELETE`, in genere occorre solo modificare le variabili impostate nella scheda **Pre-request Script (Script prerichiesta)**.

**Nota**  
Quando utilizzi la policy IAM mostrata in [Creare una policy IAM](tutorials-using-postman-iam-user.md#tutorials-using-postman-iam-user-create-policy), non puoi eseguire nessuna delle `DELETE` richieste incluse in questa raccolta.

Ad esempio, l'operazione `GetCampaign` richiede l'indicazione di un `projectId` e di un `campaignId`. Nella scheda **Pre-request Script (Script prerichiesta)**, sono presenti entrambi i valori, che vengono popolati con valori di esempio. È necessario eliminare i valori di esempio e sostituirli con quelli validi per il progetto o la campagna Amazon Pinpoint.

Di queste variabili, quella più comunemente usata è la variabile `projectId`. Il valore di questa variabile deve essere l'identificatore univoco del progetto a cui si applica la richiesta. Per ottenere l'elenco di questi identificatori dei progetti, è possibile fare riferimento alla risposta alla richiesta `GetApps` inviata nel passaggio precedente di questo tutorial. In quella risposta, il campo `Id` include l'identificatore univoco di un progetto. Per ulteriori informazioni sull'operazione `GetApps` e sul significato di ciascun campo nella risposta, consulta [App](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps.html) nella *documentazione di riferimento dell'API Amazon Pinpoint*.

**Nota**  
In Amazon Pinpoint, il termine "progetto" equivale al termine "app" o "applicazione".

Per le operazioni `POST` e `PUT`, è necessario modificare anche il corpo della richiesta in modo da includere i valori da inviare all'API. Ad esempio, quando si invia una richiesta `CreateApp`, che è una richiesta `POST`, è necessario specificare un nome per il progetto in fase di creazione. È possibile modificare la richiesta nella scheda **Body (Corpo)**. In questo esempio, il valore accanto a `"Name"` viene sostituito con il nome del progetto. Se si desidera aggiungere tag al progetto, è possibile specificarli nell'oggetto `tags`. O, se non si desidera aggiungere i tag, è possibile eliminare l'intero oggetto `tags`.

**Nota**  
L'operazione `UntagResource` richiede anche l'indicazione di parametri URL. Tali parametri si possono specificare nella scheda **Params (Parametri)**. Sostituire i valori nella colonna **VALUE** con i tag che si desidera eliminare per la risorsa specificata.

## Richiesta di esempio: crea un progetto utilizzando l'`CreateApp`operazione
<a name="tutorials-using-postman-sample-requests-createapp"></a>

Prima di creare segmenti e campagne in Amazon Pinpoint, è prima necessario creare un progetto. In Amazon Pinpoint, un *progetto* è composto da segmenti, campagne, configurazioni e dati che condividono uno scopo comune. Ad esempio, è possibile utilizzare un progetto per contenere tutti i contenuti relativi a una particolare app o a un determinato brand o iniziativa di marketing. Quando si aggiungono le informazioni sui clienti ad Amazon Pinpoint, quelle informazioni sono associate a un progetto.

**Per creare un progetto inviando una richiesta CreateApp API**

1. Nel menu **Ambienti**, scegli Regione AWS quello in cui vuoi creare il progetto.  
![\[\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/Postman_Tutorial_Environments.png)

    In questo esempio, Postman è stato configurato in modo tale che il menu **Environments (Ambienti)** mostri le seguenti quattro opzioni:
   + Stati Uniti orientali (Virginia settentrionale)
   + Stati Uniti occidentali (Oregon)
   + Europa (Francoforte)
   + Europa (Irlanda)

1. Nella cartella **App**, scegli l'**CreateApp**operazione>.  
![\[\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/Postman_Tutorial_3.2_2.png)

   La cartella **App** nella raccolta Postman di Amazon Pinpoint viene espansa e mostra le seguenti richieste:
   + `GetApp`
   + `GetApps`
   + `CreateApp`
   + `DeleteApp`

1. Nella scheda **Body (Corpo)**, accanto a `"Name"`, sostituire il valore del segnaposto (`"string"`) con un nome della campagna, ad esempio **"MySampleProject"**.

1. Elimina la virgola dopo il nome della campagna, quindi elimina l'intero oggetto `tags` nelle righe da 3 a 5. Al termine, la richiesta deve essere simile all'esempio illustrato nel seguente frammento di codice.

   ```
   {
       "Name": "MySampleProject"
   }
   ```

   Postman è configurato per inviare la richiesta come un payload JSON raw.

1. Scegli **Invia**. Se la campagna viene creata correttamente, il riquadro di risposta mostra lo stato `201 Created`.

   ```
   {
       "Name": "MySampleProject"
       "Id": "12345678901234567890123456789012",
       "Arn": "arn:aws:mobiletargeting:us-east-1:123456789012:apps/12345678901234567890123456789012",
       "tags": {}
   }
   ```

## Esempio: inviare un'e-mail utilizzando l'operazione `SendMessages`
<a name="tutorials-using-postman-sample-requests-sendmessages"></a>

È molto comune utilizzare l'API `SendMessages` di Amazon Pinpoint per inviare messaggi transazionali. Uno dei vantaggi dell'invio di messaggi tramite l'API `SendMessages` rispetto alla creazione delle campagne è la possibilità di inviare messaggi a qualsiasi indirizzo, come indirizzi e-mail, numeri di telefono o token di dispositivi. Non è necessario che l'indirizzo a cui vengono inviati i messaggi sia già presente nell'account Amazon Pinpoint. Confrontiamo questa opzione con l'invio di messaggi tramite la creazione di campagne. Prima di inviare una campagna in Amazon Pinpoint, devi aggiungere endpoint all'account Amazon Pinpoint, creare segmenti e quindi creare ed eseguire la campagna.

L'esempio in questa sezione mostra come inviare un messaggio e-mail transazionale direttamente a un indirizzo e-mail specifico. È possibile modificare questa richiesta per inviare messaggi tramite altri canali, ad esempio SMS, push su dispositivi mobili o voce.

**Per inviare un messaggio di posta elettronica inviando una SendMessages richiesta**

1. Verifica che il canale e-mail sia abilitato per il progetto e che l'indirizzo e-mail o il dominio che desideri utilizzare per inviare e ricevere il messaggio sia configurato. Per ulteriori informazioni, consulta [Abilitazione e disabilitazione del canale e-mail](pinpoint/latest/userguide/channels-email-setup.html) e [Verifica delle identità e-mail](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html) nella *Guida per l'utente di Amazon Pinpoint*.
**Nota**  
Per completare la procedura riportata in questa sezione, è necessario verificare un indirizzo e-mail.

1. Nel menu **Ambienti**, scegli il Regione AWS dispositivo da cui desideri inviare il messaggio.

   In questo esempio, Postman è stato configurato in modo tale che il menu **Environments (Ambienti)** mostri le seguenti quattro opzioni:
   + Stati Uniti orientali (Virginia settentrionale)
   + Stati Uniti occidentali (Oregon)
   + Europa (Francoforte)
   + Europa (Irlanda)

1. Nella cartella **Messaggi**, scegli l'**SendMessages**operazione.  
![\[\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/Postman_Tutorial_3.3_3.png)

1. Nella scheda **Pre-request Script (Script pre-richiesta)**, sostituire il valore della variabile `projectId` con l'ID di un progetto già esistente nella regione selezionata nella Fase 2 di questa sezione.

1. Nella scheda **Body (Corpo)**, eliminare la richiesta di esempio illustrata nell'editor della richiesta. Incolla il codice seguente:

   ```
   {
       "MessageConfiguration":{
           "EmailMessage":{
               "FromAddress":"sender@example.com",
               "SimpleEmail":{
                   "Subject":{
                       "Data":"Sample Amazon Pinpoint message"
                   },
                   "HtmlPart":{
                       "Data":"<h1>Test message</h1><p>This is a sample message sent from <a href=\"https://aws.amazon.com/pinpoint\">Amazon Pinpoint</a> using the SendMessages API.</p>"
                   },
                   "TextPart":{
                       "Data":"This is a sample message sent from Amazon Pinpoint using the SendMessages API."
                   }
               }
           }
       },
       "Addresses":{
           "recipient@example.com": {
               "ChannelType": "EMAIL"
           }
       }
   }
   ```

1. Nel codice precedente, sostituiscilo *sender@example.com* con il tuo indirizzo email verificato. Sostituiscilo *recipient@example.com* con l'indirizzo email verificato a cui desideri inviare il messaggio.
**Nota**  
Se l'account è ancora nell'ambiente di sperimentazione (sandbox) per e-mail di Amazon Pinpoint, è possibile inviare e-mail solo agli indirizzi o domini verificati nell'account Amazon Pinpoint. Per ulteriori informazioni su come far rimuovere l'account dall'ambiente di sperimentazione (sandbox), consulta la sezione relativa alla [richiesta dell'accesso all'ambiente di produzione per il canale e-mail](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-production-access.html) nella *Guida per l'utente di Amazon Pinpoint*.

1. Scegli **Invia**. Se il messaggio viene inviato correttamente, il riquadro di risposta mostra lo stato `200 OK`.

   ```
   {
       "ApplicationId": "12345678901234567890123456789012",
       "RequestId": "<sampleValue>",
       "Result": {
           "recipient@example.com": {
               "DeliveryStatus": "SUCCESSFUL",
               "StatusCode": 200,
               "StatusMessage": "<sampleValue>",
               "MessageId": "<sampleValue>"
           }
       }
   }
   ```

# Configura un sistema di registrazione SMS in Amazon Pinpoint
<a name="tutorials-two-way-sms"></a>

I messaggi SMS (messaggi di testo) sono un ottimo modo per inviare messaggi urgenti ai tuoi clienti utilizzando Amazon Pinpoint. Molte persone tengono il telefono sempre a portata di mano e i messaggi SMS tendono a catturare l'attenzione delle persone più delle notifiche push, delle e-mail o delle telefonate.

Un metodo comune per acquisire i numeri di smartphone dei clienti consiste nell'utilizzare un modulo Web. Dopo aver verificato il numero di telefono del cliente e aver ottenuto la conferma della sottoscrizione, puoi iniziare a inviargli messaggi SMS promozionali, transazionali e informativi.

Questo tutorial illustra come configurare un modulo Web per acquisire le informazioni di contatto dei clienti. Il modulo Web invia queste informazioni ad Amazon Pinpoint. Quindi, Amazon Pinpoint verifica la validità del numero di telefono e acquisisce altri metadati correlati al numero. Successivamente, Amazon Pinpoint invia un messaggio al cliente per chiedere conferma della sottoscrizione. Una volta che il cliente conferma la sottoscrizione, Amazon Pinpoint lo abilita mediante opt-in alla ricezione dei messaggi.

Il seguente diagramma di architettura mostra il flusso di dati in questa soluzione.

![\[\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_Architecture.png)


## Informazioni sulla doppia attivazione
<a name="tutorials-two-way-sms-double-opt-in"></a>

In questo tutorial viene illustrato come configurare un sistema di doppio opt-in in Amazon Pinpoint basato sulla messaggistica SMS bidirezionale.

In un sistema di doppia attivazione SMS, il cliente ti fornisce il suo numero di telefono inviandolo in un modulo Web o all'interno della tua app. Quando ricevi la richiesta del cliente, crei un nuovo endpoint in Amazon Pinpoint. Il nuovo endpoint deve essere escluso dalle comunicazioni. Quindi, invii un messaggio a quel numero di telefono. Nel messaggio richiedi al destinatario la conferma della sottoscrizione con una parola o frase specifica (ad esempio "Sì" o "Conferma"). Se il cliente risponde al messaggio con la parola o frase specificata, modifichi lo stato dell'endpoint in attivato. In caso contrario, se il cliente non risponde o risponde con una parola o frase diversa, puoi lasciare l'endpoint disattivato.

## Informazioni su questa soluzione
<a name="tutorials-two-way-sms-about"></a>

Questa sezione contiene informazioni sulla soluzione che stai creando in questo tutorial.

**Destinatari principali**  
Questo tutorial è rivolto a un pubblico di sviluppatori e di implementatori di sistema. Non è necessario avere familiarità con Amazon Pinpoint per completare le fasi descritte in questo tutorial. Tuttavia, è consigliabile avere una certa dimestichezza con la gestione delle policy IAM, la creazione di funzioni Lambda in Node.js e l'implementazione di contenuti Web.

**Caratteristiche utilizzate**  
Questo tutorial include esempi di utilizzo delle seguenti funzionalità di Amazon Pinpoint:
+ Invio di SMS transazionali
+ Acquisizione di informazioni sui numeri di telefono utilizzando la funzione di convalida del numero di telefono
+ Ricezione di messaggi SMS in entrata utilizzando la messaggistica SMS bidirezionale
+ Creazione di segmenti dinamici
+ Creazione di campagne
+ Interazione con l'API Amazon Pinpoint utilizzando AWS Lambda

**Tempo richiesto**  
Il completamento di questo tutorial richiede circa un'ora. Dopo aver implementato questa soluzione, esistono fasi aggiuntive che puoi utilizzare per adeguarla al tuo caso d'uso specifico.

**Limitazioni regionali**  
Questo tutorial richiede il noleggio di un codice lungo tramite la console Amazon Pinpoint. Puoi utilizzare la console Amazon Pinpoint per noleggiare codici lunghi dedicati ubicati in vari paesi. Tuttavia, per inviare messaggi SMS puoi utilizzare solo codici lunghi con sede in Canada. (Per inviare messaggi vocali è possibile utilizzare codici lunghi con sede in altri paesi e regioni).

Abbiamo sviluppato i codici di esempio di questo tutorial tenendo presente questa limitazione. Ad esempio, i codici di esempio presuppongono che il numero di telefono sia sempre di 10 cifre e che il codice paese sia 1. Se implementi la soluzione in paesi o regioni che non siano Stati Uniti o Canada, devi modificare i codici di esempio in modo appropriato.

**Costi di utilizzo delle risorse**  
La creazione di un AWS account è gratuita. Tuttavia, implementando questa soluzione potresti incorrere nei seguenti costi:
+ **Costo di noleggio del codice lungo**: per completare questo tutorial, devi noleggiare un codice lungo. I codici lunghi con sede in Canada costano 1,00 USD al mese.
+ **Utilizzo della convalida del numero di telefono**: la soluzione in questo tutorial utilizza la funzionalità di convalida del numero di telefono di Amazon Pinpoint per verificare che ogni numero ricevuto sia valido e nel formato corretto, nonché per ottenere ulteriori informazioni sul numero di telefono. Per ogni richiesta di convalida del numero di telefono ti vengono addebitati 0,006 USD.
+ **Costi per l'invio dei messaggi**: la soluzione in questo tutorial invia messaggi SMS in uscita. Ti viene addebitato ogni messaggio inviato tramite Amazon Pinpoint. Il prezzo addebitato per ogni messaggio dipende dal paese o dalla regione del destinatario. Se invii messaggi a destinatari negli Stati Uniti (esclusi i territori non incorporati negli Stati Uniti), ti vengono addebitati 0,00645 USD a messaggio. Se invii messaggi a destinatari in Canada, l'addebito è nell'intervallo 0,00109–0,02 USD, a seconda dell'operatore e della posizione del destinatario.
+ **Costi per la ricezione dei messaggi**: questa soluzione riceve ed elabora anche i messaggi SMS in entrata. Ti viene addebitato ogni messaggio in entrata inviato ai numeri di telefono associati all'account Amazon Pinpoint. Il prezzo dipende da dove si trova il telefono che riceve i messaggi. Se il numero ricevente è negli Stati Uniti (esclusi i territori non incorporati negli Stati Uniti), ti vengono addebitati 0,0075 USD per ogni messaggio in entrata. Se il numero è in Canada, ti vengono addebitati 0,00155 USD per ogni messaggio in entrata.
+ **Utilizzo di Lambda**: questa soluzione utilizza due funzioni Lambda che interagiscono con l'API Amazon Pinpoint. Quando chiami una funzione Lambda, i costi addebitati dipendono dal numero di richieste di funzioni, dal tempo necessario all'esecuzione del codice e dalla quantità di memoria utilizzata dalla funzione. In questo tutorial, le funzioni utilizzano una quantità ridotta di memoria e di solito vengono eseguite per 1-3 secondi. L'utilizzo totale o parziale della soluzione può rientrare nei limiti del piano di utilizzo gratuito di Lambda. Per ulteriori informazioni, consulta [Prezzi di Lambda](https://aws.amazon.com/lambda/pricing/).
+ **Utilizzo di Gateway API**: in questa soluzione, il modulo Web chiama un'API gestita da Gateway API. Per ogni milione di chiamate ad API Gateway, paghi da 3,50 a 3,70 USD, a seconda della regione in cui AWS utilizzi Amazon Pinpoint. Per ulteriori informazioni, consulta [Prezzi di Gateway Amazon API](https://aws.amazon.com/api-gateway/pricing/).
+ **Costi per l'hosting Web**: questa soluzione include un modulo Web che devi ospitare nel tuo sito Web. Il prezzo per l'hosting di questi contenuti dipende dal provider dell'hosting Web.

**Nota**  
Tutti i prezzi indicati in questo elenco sono in dollari USA (USD).

**Successivo**: [Prerequisiti](tutorials-two-way-sms-prereqs.md)

# Prerequisiti per la configurazione degli SMS in Amazon Pinpoint
<a name="tutorials-two-way-sms-prereqs"></a>

Prima di iniziare questo tutorial, è necessario completare i seguenti prerequisiti:
+ Devi avere un AWS account. Per creare un AWS account, vai su [https://console.aws.amazon.com/](https://console.aws.amazon.com/)e scegli **Crea un nuovo AWS account**.
+ L'account che usi per accedere a Console di gestione AWS deve essere in grado di eseguire le seguenti attività:
  + Creazione di nuovi ruoli e policy IAM
  + Creazione di nuovi progetti Amazon Pinpoint
  + Creazione di nuove funzioni Lambda
  + Crea nuovo APIs in API Gateway
+ È necessario disporre di un metodo di hosting e pubblicazione di pagine Web. Sebbene sia possibile utilizzare AWS i servizi per ospitare le pagine Web, non è necessario. 
**Suggerimento**  
Per ulteriori informazioni sull'hosting di pagine Web tramite AWS servizi, consulta [Ospitare una pagina Web statica](https://aws.amazon.com/getting-started/hands-on/host-static-website/).

**Successivo**: [Configurazione di Amazon Pinpoint](tutorials-two-way-sms-part-1.md)

# Configurazione degli SMS in Amazon Pinpoint
<a name="tutorials-two-way-sms-part-1"></a>

Prima di poter configurare i messaggi SMS, è necessario un progetto Amazon Pinpoint. In questa sezione effettuerai le operazioni seguenti:
+ Creare un progetto Amazon Pinpoint
+ Abilitare il canale SMS e noleggiare un numero di telefono
+ Configurare la messaggistica SMS bidirezionale

Prima di iniziare, esamina i [prerequisiti](tutorials-two-way-sms-prereqs.md).

## Creare un progetto Amazon Pinpoint
<a name="tutorials-two-way-sms-part-1-create-project"></a>

Per iniziare, è necessario creare un progetto Amazon Pinpoint. In Amazon Pinpoint, un *progetto* è composto da segmenti, campagne, configurazioni e dati che condividono uno scopo comune. Ad esempio, è possibile utilizzare un progetto per contenere tutti i contenuti relativi a una particolare app o a un determinato brand o iniziativa di marketing. Quando si aggiungono le informazioni sui clienti ad Amazon Pinpoint, quelle informazioni sono associate a un progetto.

I passi necessari per la creazione di un nuovo progetto variano a seconda che in precedenza sia stato creato un progetto in Amazon Pinpoint o meno.

### Creazione di un progetto (nuovi utenti Amazon Pinpoint)
<a name="tutorials-two-way-sms-part-1-create-project-opt-1"></a>

Questi passaggi descrivono il processo di creazione di un nuovo progetto Amazon Pinpoint se non hai mai creato un progetto nella regione corrente AWS .

**Come creare un progetto**

1. Accedi a Console di gestione AWS e apri la console Amazon Pinpoint all'indirizzo. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Usa il selettore della regione per scegliere la AWS regione che desideri utilizzare, come mostrato nell'immagine seguente. Se non si è sicuri, scegliere la regione più prossima.  
![\[Il menu a discesa della regione che mostra Stati Uniti orientali (Virginia settentrionale) selezionata.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/Region_Selector.png)

1. In **Get started (Inizia)**, nel campo **Name (Nome)**, inserire un nome per la campagna (come **SMSRegistration**), quindi selezionare **Create project (Crea progetto)**..

1. Nella pagina **Configure features (Configura caratteristiche)**, selezionare **Skip this step (Salta questa fase)**.

1. Nel riquadro di navigazione, selezionare **All projects (Tutti i progetti)**.

1. Nella pagina **All projects (Tutti i progetti)**, accanto al progetto appena creato, copiare il valore che compare nella colonna **Project ID (ID progetto)**.
**Suggerimento**  
Questo ID servirà in pochi altri punti di questo tutorial. Conservare l'ID progetto in un percorso sicuro per poterlo copiare in un secondo momento.

### Creazione di un progetto (utenti Amazon Pinpoint esistenti)
<a name="tutorials-two-way-sms-part-1-create-project-opt-2"></a>

Questi passaggi descrivono il processo di creazione di un nuovo progetto Amazon Pinpoint se hai già creato progetti nella regione corrente AWS .

**Come creare un progetto**

1. Accedi a Console di gestione AWS e apri la console Amazon Pinpoint all'indirizzo. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Usa il selettore della regione per scegliere la AWS regione che desideri utilizzare, come mostrato nell'immagine seguente. Se non si è sicuri, scegliere la regione più prossima.  
![\[Il menu a discesa della regione che mostra Stati Uniti orientali (Virginia settentrionale) selezionata.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/Region_Selector.png)

1. Nella pagina **All projects (Tutti i progetti)** scegliere **Create a project (Crea un progetto)**.

1. Nella finestra **Create a project (Crea un progetto)**, nel campo **Project name (Nome progetto)**, immettere un nome per il progetto (come **SMSRegistration**). Scegli **Create** (Crea).

1. Nella pagina **Configure features (Configura caratteristiche)**, selezionare **Skip this step (Salta questa fase)**.

1. Nel riquadro di navigazione, selezionare **All projects (Tutti i progetti)**.

1. Nella pagina **All projects (Tutti i progetti)**, accanto al progetto appena creato, copiare il valore che compare nella colonna **Project ID (ID progetto)**.
**Suggerimento**  
Questo ID servirà in pochi altri punti di questo tutorial. Conservare l'ID progetto in un percorso sicuro per poterlo copiare in un secondo momento.

## Ottenere un numero di telefono dedicato
<a name="tutorials-two-way-sms-part-1-set-up-channel"></a>

**Nota**  
Amazon Pinpoint ha aggiornato la documentazione relativa alla guida per l'utente. Per ottenere le informazioni più recenti su come creare, configurare e gestire le risorse SMS e vocali, consulta la nuova [guida per l'utente di AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html). 

Dopo aver creato un progetto, è possibile iniziare a configurare le caratteristiche all'interno del progetto. In questa sezione, puoi abilitare il canale SMS e ottenere un numero di telefono dedicato da utilizzare per l'invio di messaggi SMS.

**Nota**  
Questa sezione presuppone che tu stia noleggiando un numero di telefono 10DLC statunitense dopo avere registrato il marchio e la campagna, un numero verde statunitense o un codice lungo canadese. Se segui le procedure di questa sezione, ma scegli un paese diverso da Stati Uniti o Canada, non potrai utilizzare tale numero per inviare messaggi SMS. Per ulteriori informazioni sul leasing di codici lunghi compatibili con SMS in paesi diversi dagli Stati Uniti d'America o dal Canada, [consulta Paesi e aree geografiche supportati (canale SMS) nella Guida per AWS l'utente SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) *di messaggistica per l'utente finale*.

Per abilitare il canale SMS utilizzando la console Amazon Pinpoint, attieniti alla seguente procedura:

**Abilita il canale SMS**

1. Accedi a Console di gestione AWS e apri la console Amazon Pinpoint all'indirizzo. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Nel riquadro di navigazione, in **Settings (Impostazioni)**, scegliere **SMS and voice (Messaggi SMS e vocali)**.

1. Accanto a **SMS settings (Impostazioni SMS)**, scegliere **Edit (Modifica)**.

1. In **General settings (Impostazioni generali)**, scegliere **Enable the SMS channel for this project (Abilita il canale SMS per questo progetto)**, quindi scegliere **Save changes (Salva modifiche)**.

Per richiedere un numero di telefono utilizzando la console SMS di messaggistica per l'utente AWS finale, segui questi passaggi:

**Richiesta di un numero di telefono (Console)**

1. Apri la console SMS di messaggistica con l'utente AWS finale all'indirizzo [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).
**Nota**  
Assicurati di richiedere un numero di telefono nello stesso indirizzo in Regione AWS cui hai creato il tuo progetto Amazon Pinpoint.

1. Nel riquadro di navigazione, in **Configurazioni**, scegli **Numeri di telefono**, quindi **Origine della richiesta**.

1. Nella pagina **Seleziona paese** per **Paese di destinazione del messaggio** scegli Stati Uniti o Canada. Scegli **Next (Successivo)**.

1. Nella sezione **Caso d'uso della messaggistica** inserisci quanto segue:
   + In **Funzionalità numeriche**, scegli **SMS**
**Importante**  
Le funzionalità per SMS e voce non possono essere modificate una volta acquistato il numero di telefono.
   + Per **Messaggistica bidirezionale** scegli **Sì**.

1. Scegli **Next (Successivo)**.

1. In **Seleziona il tipo di origine** scegli **Codice lungo** o **10DLC**.

   Se scegli 10DLC e hai già una campagna registrata, puoi scegliere la campagna da **Associa a campagna registrata**.

1. Scegli **Next (Successivo)**.

1. In **Verifica e richiedi** puoi verificare e modificare la richiesta prima di inviarla. Scegli **Richiedi**.

1. A seconda del tipo di numero di telefono richiesto, potrebbe apparire una finestra **Registrazione obbligatoria**. Il tuo numero di telefono è associato a questa registrazione e non puoi inviare messaggi finché la registrazione non viene approvata. Per ulteriori informazioni sui requisiti di registrazione, consulta [Registrazioni](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html).

   1. Per **Nome del modulo di registrazione**, inserisci un nome descrittivo.

   1. Scegli **Inizia la registrazione** per completare la registrazione del numero di telefono o **Registrati più tardi**.
**Importante**  
Il tuo numero di telefono non può inviare messaggi finché la registrazione non viene approvata.  
 Ti verrà comunque addebitato il canone di locazione mensile ricorrente per il numero di telefono indipendentemente dallo stato della registrazione. Per ulteriori informazioni sui requisiti di registrazione, consulta [Registrazioni](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html).

## Abilitazione della messaggistica SMS bidirezionale
<a name="tutorials-two-way-sms-part-1-enable-two-way"></a>

Ora che disponi di un numero di telefono dedicato, puoi configurare la messaggistica SMS bidirezionale. Tale abilitazione consente ai clienti di rispondere ai messaggi SMS che hai inviato loro. In questa soluzione, puoi usare la messaggistica SMS bidirezionale per offrire ai clienti un modo per confermare il desiderio di iscriversi al programma SMS.

Per abilitare gli SMS bidirezionali utilizzando la console SMS di messaggistica per l'utente AWS finale, segui questi passaggi:

**Abilitazione della messaggistica SMS bidirezionale**

1. Apri la console SMS di messaggistica con l'utente AWS finale all'indirizzo [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. Nel pannello di navigazione, in **Configurazioni**, scegli **Numeri di telefono**.

1. Nella pagina **Numeri di telefono** scegli un numero di telefono.

1. Nella scheda **SMS bidirezionali**, scegli il pulsante **Modifica impostazioni**.

1. Nella pagina **Modifica impostazioni** scegli **Abilita messaggio bidirezionale**.

1. Per **Tipo di destinazione**, scegli **Amazon SNS**.
   + **Nuovo argomento di Amazon SNS**: AWS End User Messaging SMS crea un argomento nel tuo account. L’argomento viene creato automaticamente con tutte le autorizzazioni richieste. Per ulteriori informazioni sugli argomenti Amazon SNS, consulta [Configurazione Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-configuring.html) nella *Guida per gli sviluppatori di Amazon Simple Notification Service*. 
   + Per **Destinazione del messaggio in entrata**, inserisci il nome di un argomento, ad esempio, **SMSRegistrationFormTopic**.

1. Per **Ruolo del canale bidirezionale**, scegli **Usa le policy sugli argomenti SNS**.

1. Scegli **Save changes** (Salva modifiche).

Utilizza la console SMS di messaggistica con l'utente AWS finale per aggiungere parole chiave al tuo numero di telefono che i clienti ti inviano per confermare i loro abbonamenti (ad esempio **Yes** o**Confirm**).

**Aggiunta di una parola chiave**

1. Apri la console SMS di messaggistica con l'utente AWS finale all'indirizzo [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. Nel pannello di navigazione, in **Configurazioni**, scegli **Numero di telefono**.

1. Nella pagina **Numero di telefono** scegli un numero di telefono a cui aggiungere una parola chiave.

1. Nella scheda **Parole chiave**, scegli il pulsante **Aggiungi parola chiave**.

1. Nel riquadro **Parole chiave personalizzate** aggiungi quanto segue:
   + **Parola chiave**: la nuova parola chiave da aggiungere (ad esempio **Yes** o **Confirm**).
   + **Messaggio di risposta**: il messaggio da inviare al destinatario.
   + **Azione con parole chiave**: l'operazione da eseguire quando si riceve la parola chiave. Scegli **Risposta automatica**.

1. Scegli **Aggiungi parola chiave**.

[Successivo](tutorials-two-way-sms-part-2.md): **Creazione di policy e ruoli IAM**

# Crea policy e ruoli IAM da utilizzare con gli SMS in Amazon Pinpoint
<a name="tutorials-two-way-sms-part-2"></a>

Il passaggio successivo nell'implementazione della soluzione di registrazione SMS in Amazon Pinpoint consiste nella configurazione di una policy e di un ruolo in AWS Identity and Access Management (IAM). Per questa soluzione, è necessario creare una policy che fornisca l'accesso a determinate risorse correlate ad Amazon Pinpoint. Creerai quindi un ruolo a cui collegare la policy. Più avanti in questo tutorial, creerai una AWS Lambda funzione che utilizza questo ruolo per richiamare determinate operazioni nell'API Amazon Pinpoint.

## Creazione di una policy IAM
<a name="tutorials-two-way-sms-part-2-create-policy"></a>

Questa sezione illustra come creare una policy IAM. Gli utenti e i ruoli che usano questa policy possono eseguire le seguenti operazioni:
+ Utilizzare la funzione di convalida del numero di telefono
+ È possibile visualizzare, creare e aggiornare gli endpoint Amazon Pinpoint
+ Invio di messaggi agli endpoint Amazon Pinpoint

In questo tutorial, vuoi consentire a Lambda di eseguire queste attività. Tuttavia, per una maggiore sicurezza, questa policy utilizza il principale dei *privilegi minimi* di concessione. In altre parole, concede solo le autorizzazioni necessarie per completare questa soluzione, e nient'altro. Questa policy è limitata nei seguenti modi:
+ È possibile utilizzarla solo per chiamare l'API di convalida del numero di telefono in una regione specifica..
+ È possibile utilizzarla solo per visualizzare, creare o aggiornare gli endpoint associati a un progetto Amazon Pinpoint specifico.
+ È possibile utilizzarla solo per inviare messaggi agli endpoint associati a un progetto Amazon Pinpoint specifico.

**Come creare la policy**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione, scegli **Policy** e **Crea policy**.

1. Nella scheda **JSON**, incollare il codice seguente.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:CreateLogGroup"
               ],
               "Resource": "arn:aws:logs:*:*:*"
           },
           {
               "Effect": "Allow",
               "Action": "mobiletargeting:SendMessages",
               "Resource": "arn:aws:mobiletargeting:us-east-1:111122223333:apps/projectId/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "mobiletargeting:GetEndpoint",
                   "mobiletargeting:UpdateEndpoint",
                   "mobiletargeting:PutEvents"
               ],
               "Resource": "arn:aws:mobiletargeting:us-east-1:111122223333:apps/projectId/endpoints/*"
           },
           {
               "Effect": "Allow",
               "Action": "mobiletargeting:PhoneNumberValidate",
               "Resource": "arn:aws:mobiletargeting:us-east-1:111122223333:phone/number/validate"
           }
       ]
   }
   ```

------

   Nell'esempio precedente, procedere nel modo seguente:
   + Sostituisci *region* con la AWS regione in cui utilizzi Amazon Pinpoint, ad esempio `us-east-1` o. `eu-central-1`
**Suggerimento**  
Per un elenco completo delle AWS regioni in cui è disponibile Amazon Pinpoint, consulta [AWS le regioni e gli endpoint](https://docs.aws.amazon.com/general/latest/gr/rande.html#pinpoint_region) nel. *Riferimenti generali di AWS*
   + *accountId*Sostituiscilo con l'ID univoco del tuo AWS account.
   + Sostituiscilo *projectId* con l'ID univoco del progetto che hai creato in [Crea un progetto Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project) di questo tutorial.
**Nota**  
Le `logs` azioni consentono a Lambda di registrare l'output in CloudWatch Logs.

1. Scegli **Next (Successivo)**.

1. Per **Nome della politica**, inserisci un nome per la politica, ad esempio. **RegistrationFormPolicy** Scegli **Crea policy**.

## Creazione di un ruolo IAM
<a name="tutorials-two-way-sms-part-2-create-role"></a>

**Come creare il ruolo**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione della console IAM, scegli **Ruoli**, quindi **Crea ruolo**.

1. In **Tipo di entità affidabile**, scegli **AWS servizio**, quindi per **Servizio o caso utente** scegli **Lambda** dall'elenco a discesa.

1. Scegli **Next (Successivo)**.

1. **In **Politiche di autorizzazione**, scegli o cerca la politica che hai creato nella sezione precedente, quindi scegli Avanti.**

1. In **Dettagli del ruolo**, in **Nome del ruolo**, inserisci un nome per il ruolo, ad esempio**SMSRegistrationForm**. Scegli **Crea ruolo**.

**Successivo**: [Creazione della funzione Lambda](tutorials-two-way-sms-part-3.md)

# Crea funzioni Lambda da utilizzare con la messaggistica SMS di Amazon Pinpoint
<a name="tutorials-two-way-sms-part-3"></a>

Questa sezione mostra come creare e configurare due funzioni Lambda da utilizzare con la messaggistica SMS di Amazon Pinpoint. Successivamente, configurerai API Gateway e Amazon Pinpoint per richiamare queste funzioni quando si verificano determinati eventi. Entrambe le funzioni creano e aggiornano gli endpoint nel progetto Amazon Pinpoint specificato. La prima funzione utilizza anche la funzione di convalida dei numeri di telefono.

## Creazione della funzione che convalida le informazioni sul cliente e crea gli endpoint.
<a name="tutorials-two-way-sms-part-3-create-register-function"></a>

La prima funzione viene inserita dal modulo di registrazione, che riceve da Amazon API Gateway. Utilizza queste informazioni per ottenere informazioni sul numero di telefono del cliente utilizzando la funzione di [convalida del numero di telefono](https://docs.aws.amazon.com/pinpoint/latest/developerguide/validate-phone-numbers.html) di Amazon Pinpoint. La funzione utilizza quindi i dati convalidati per creare un nuovo endpoint nel progetto Amazon Pinpoint specificato. Per impostazione predefinita, l'endpoint creato dalla funzione è escluso dalle future comunicazioni dell'utente, ma questa condizione può essere modificata dalla seconda funzione. Infine, questa funzione invia al cliente un messaggio per verificare la volontà di ricevere SMS dall'utente.

**Creazione della funzione Lambda**

1. Apri la AWS Lambda console all'indirizzo. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Scegli **Crea funzione**.

1. In **Crea una funzione**, scegli **Usa un blueprint**.

1. Nel campo di ricerca, digitare **hello** e premere Invio. Nell'elenco dei risultati, scegliere la funzione Node.js `hello-world`, come illustrato nella seguente immagine.   
![\[La pagina Crea funzione che mostra Usa un blueprint selezionato.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.5.png)

1. In **Basic information (Informazioni di base)** eseguire queste operazioni:
   + In **Name (Nome)**, inserire un nome per la funzione, ad esempio **RegistrationForm**.
   + Per **Role (Ruolo)** selezionare **Choose an existing role (Scegli un ruolo esistente)**.
   + Per **Ruolo esistente**, scegli il ruolo **SMSRegistrationForm** che hai creato in [Crea un ruolo IAM](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role).

   Al termine, selezionare **Create function (Crea funzione)**.

1. Per **Code source**, elimina la funzione di esempio nell'editor di codice, quindi incolla il codice seguente:

   ```
   import { PinpointClient, PhoneNumberValidateCommand, UpdateEndpointCommand, SendMessagesCommand } from "@aws-sdk/client-pinpoint"; // ES Modules import
   const pinClient = new PinpointClient({region: process.env.region});  
   
   // Make sure the SMS channel is enabled for the projectId that you specify.
   // See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-setup.html
   var projectId = process.env.projectId;
   
   // You need a dedicated long code in order to use two-way SMS. 
   // See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-voice-manage.html#channels-voice-manage-request-phone-numbers
   var originationNumber = process.env.originationNumber;
   
   // This message is spread across multiple lines for improved readability.
   var message = "ExampleCorp: Reply YES to confirm your subscription. 2 msgs per "
               + "month. No purchase req'd. Msg&data rates may apply. Terms: "
               + "example.com/terms-sms";
               
   var messageType = "TRANSACTIONAL";
   
   export const handler = async (event, context) => {
     console.log('Received event:', event);
     await validateNumber(event);
   };
   
   async function validateNumber (event) {
     var destinationNumber = event.destinationNumber;
     if (destinationNumber.length == 10) {
       destinationNumber = "+1" + destinationNumber;
     }
     var params = {
       NumberValidateRequest: {
         IsoCountryCode: 'US',
         PhoneNumber: destinationNumber
       }
     };
     try{
       const PhoneNumberValidateresponse = await pinClient.send( new  PhoneNumberValidateCommand(params));
       console.log(PhoneNumberValidateresponse);
        if (PhoneNumberValidateresponse['NumberValidateResponse']['PhoneTypeCode'] == 0) {
           await createEndpoint(PhoneNumberValidateresponse, event.firstName, event.lastName, event.source);
           
         } else {
           console.log("Received a phone number that isn't capable of receiving "
                      +"SMS messages. No endpoint created.");
         }
     }catch(err){
       console.log(err);
     }
   }
   
   async function createEndpoint(data, firstName, lastName, source) {
     var destinationNumber = data['NumberValidateResponse']['CleansedPhoneNumberE164'];
     var endpointId = data['NumberValidateResponse']['CleansedPhoneNumberE164'].substring(1);
     
     var params = {
       ApplicationId: projectId,
       // The Endpoint ID is equal to the cleansed phone number minus the leading
       // plus sign. This makes it easier to easily update the endpoint later.
       EndpointId: endpointId,
       EndpointRequest: {
         ChannelType: 'SMS',
         Address: destinationNumber,
         // OptOut is set to ALL (that is, endpoint is opted out of all messages)
         // because the recipient hasn't confirmed their subscription at this
         // point. When they confirm, a different Lambda function changes this 
         // value to NONE (not opted out).
         OptOut: 'ALL',
         Location: {
           PostalCode:data['NumberValidateResponse']['ZipCode'],
           City:data['NumberValidateResponse']['City'],
           Country:data['NumberValidateResponse']['CountryCodeIso2'],
         },
         Demographic: {
           Timezone:data['NumberValidateResponse']['Timezone']
         },
         Attributes: {
           Source: [
             source
           ]
         },
         User: {
           UserAttributes: {
             FirstName: [
               firstName
             ],
             LastName: [
               lastName
             ]
           }
         }
       }
     };
     try{
       const UpdateEndpointresponse = await pinClient.send(new UpdateEndpointCommand(params));
       console.log(UpdateEndpointresponse);
       await sendConfirmation(destinationNumber);
     }catch(err){
       console.log(err);
     }  
   }
   
   async function sendConfirmation(destinationNumber) {
     var params = {
       ApplicationId: projectId,
       MessageRequest: {
         Addresses: {
           [destinationNumber]: {
             ChannelType: 'SMS'
           }
         },
         MessageConfiguration: {
           SMSMessage: {
             Body: message,
             MessageType: messageType,
             OriginationNumber: originationNumber
           }
         }
       }
     };
     try{
       const SendMessagesCommandresponse = await pinClient.send(new SendMessagesCommand(params));
       console.log("Message sent! " 
             + SendMessagesCommandresponse['MessageResponse']['Result'][destinationNumber]['StatusMessage']);
     }catch(err){
       console.log(err);
     }
   }
   ```

1. Nella scheda **Configurazione** per **le variabili di ambiente**, scegliete **Modifica**, quindi **Aggiungi variabile di ambiente**, effettuate le seguenti operazioni:
   + Nella prima riga, creare una variabile con una chiave di **originationNumber**. Quindi, impostare il valore sul numero di telefono del codice lungo dedicato ricevuto nella [Fase 1.2](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).
**Nota**  
Ricordare di includere il segno (\$1) e il codice del paese nel numero di telefono. Non includere altri caratteri speciali, ad esempio trattini (-), punti (.) o parentesi.
   + Nella seconda riga, creare una variabile con una chiave di **projectId**. Quindi, impostare il valore sull'ID univoco del progetto creato nella [Fase 1.1](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).
   + Nella terza riga, creare una variabile con una chiave di **region**. Quindi, imposta il valore sulla regione in cui viene utilizzato Amazon Pinpoint, ad esempio **us-east-1** o **us-west-2**.

   Al termine, la sezione **Environment Variables (Variabili di ambiente)** dovrebbe essere simile all'esempio illustrato nella seguente immagine.  
![\[Le variabili di ambiente per OriginationNumber, ProjectID e region.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.7.png)

1. Nella parte superiore della pagina, scegli **Save (Salva)**.

### Test della funzione
<a name="tutorials-two-way-sms-part-3-create-register-function-test"></a>

Una volta creata la funzione, è opportuno testarla per verificarne la corretta configurazione. Verifica inoltre che il ruolo IAM creato disponga delle autorizzazioni appropriate.

**Per testare la funzione**

1. Seleziona la scheda **Test**.

1. Scegliete **Crea nuovo evento, effettuate** le seguenti operazioni:
   + Nel campo **Event name (Nome evento)**, inserire un nome per l'evento di test, ad esempio **MyPhoneNumber**.
   + Cancellare il codice di esempio nell'editor di codici. Incolla il codice seguente:

     ```
     {
       "destinationNumber": "+12065550142",
       "firstName": "Carlos",
       "lastName": "Salazar",
       "source": "Registration form test"
     }
     ```
   + Nel precedente codice di esempio, sostituire i valori degli attributi `destinationNumber`, `lastName` e `firstName`, con i valori da utilizzare per il test, ad esempio le informazioni di contatto personali. Quando si testa la funzione, questa invia un SMS al numero di telefono specificato nell'attributo `destinationNumber`. Verificare che il numero di telefono specificato possa ricevere gli SMS.
   + Scegliere **Create (Crea)**.

1. Scegliere **Test (Esegui test)**.

1. In **Execution result: succeeded (Risultato esecuzione: riuscita)**, selezionare **Details (Dettagli)**. Nella sezione **Log output (Output di log)**, riesaminare l'output della funzione. Verificare che la funzione sia stata eseguita senza errori.

   Controllare il dispositivo associato al `destinationNumber` specificato per verificare che abbia ricevuto il messaggio di test.

1. Apri la console Amazon Pinpoint all'indirizzo. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Nella pagina **Tutti i progetti**, scegli il progetto che hai creato in [Crea un progetto Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. Nel riquadro di navigazione, selezionare **Segments (Segmenti)**. Nella **Segments page (Pagina segmenti)**, selezionare **Create a segment (Crea un segmento)**.

1. In **Segment group 1 (Gruppo segmenti 1)**, nel campo **Add filters to refine your segment (Aggiungi filtri per rifinire i segmenti)**, selezionare **Filter by user (Filtra per utente)**.

1. Per **Scegli un attributo utente**, scegli **FirstName**. Quindi, in **Choose values (Scegli valori)**, selezionare il nome specificato nell'evento di prova.

   La sezione **Segment estimate (Stima segmenti)** dovrebbe indicare che non ci sono endpoint idonei e un endpoint totale, come illustrato nella seguente immagine. Questo risultato è previsto. Quando la funzione crea un nuovo endpoint, l'endpoint viene disattivato. I segmenti in Amazon Pinpoint escludono automaticamente gli endpoint interessati da un'azione di opt-out.  
![\[Il gruppo di segmenti che mostra zero punti finali.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step8.9.png)

## Creazione della funzione che abilita i clienti alle comunicazioni
<a name="tutorials-two-way-sms-part-3-create-optin-function"></a>

La seconda funzione viene eseguita solo quando un cliente risponde al messaggio inviato dalla prima funzione. Se la risposta del cliente include la parola chiave specificata in [Abilita SMS bidirezionali](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel), la funzione aggiorna il record dell'endpoint per consentirgli di ricevere comunicazioni future. Amazon Pinpoint risponde inoltre automaticamente con il messaggio specificato in [Abilita](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel) SMS bidirezionali.

Se il cliente non risponde o risponde con una parola chiave diversa da quella designata, non succede nulla. L'endpoint del cliente resta in Amazon Pinpoint, ma non può essere scelto come destinazione dei segmenti.

**Creazione della funzione Lambda**

1. Apri la console all' AWS Lambda indirizzo. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Scegli **Crea funzione**.

1. In **Create a function (Crea una funzione)**, selezionare **Blueprints (Piani)**.

1. Nel campo di ricerca, digitare **hello** e premere Invio. Nell'elenco dei risultati, scegliere la funzione Node.js `hello-world`, come illustrato nella seguente immagine. Scegliere **Configure** (Configura).

1. In **Basic information (Informazioni di base)** eseguire queste operazioni:
   + In **Name (Nome)**, inserire un nome per la funzione, ad esempio **RegistrationForm\$1OptIn**.
   + Per **Role (Ruolo)** selezionare **Choose an existing role (Scegli un ruolo esistente)**.
   + Per **Ruolo esistente**, scegli il ruolo SMSRegistration Form che hai creato in [Crea un ruolo IAM](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role).

   Al termine, selezionare **Create function (Crea funzione)**.

1. Eliminare la funzione di esempio nell'editor di codici, quindi incollare il codice seguente:

   ```
   import { PinpointClient, UpdateEndpointCommand } from "@aws-sdk/client-pinpoint"; // ES Modules import
   
   // Create a new Pinpoint client instance with the region specified in the environment variables
   const pinClient = new PinpointClient({ region: process.env.region });
   
   // Get the Pinpoint project ID and the confirm keyword from environment variables
   const projectId = process.env.projectId;
   const confirmKeyword = process.env.confirmKeyword.toLowerCase();
   
   // This is the main handler function that is invoked when the Lambda function is triggered
   export const handler = async (event, context) => {
       console.log('Received event:', event);
   
       try {
           // Extract the timestamp, message, and origination number from the SNS event
           const timestamp = event.Records[0].Sns.Timestamp;
           const message = JSON.parse(event.Records[0].Sns.Message);
           const originationNumber = message.originationNumber;
           const response = message.messageBody.toLowerCase();
   
           // Check if the response message contains the confirm keyword
           if (response.includes(confirmKeyword)) {
               // If the confirm keyword is found, update the endpoint's opt-in status
               await updateEndpointOptIn(originationNumber, timestamp);
           }
       }catch (error) {
           console.error('An error occurred:', error);
           throw error; // Rethrow the error to handle it upstream
       }
   };
   
   // This function updates the opt-in status of a Pinpoint endpoint
   async function updateEndpointOptIn(originationNumber, timestamp) {
       // Extract the endpoint ID from the origination number
       const endpointId = originationNumber.substring(1);
   
        // Prepare the parameters for the UpdateEndpointCommand
       const params = {
           ApplicationId: projectId,
           EndpointId: endpointId,
           EndpointRequest: {
               Address: originationNumber,
               ChannelType: 'SMS',
               OptOut: 'NONE',
               Attributes: {
                   OptInTimestamp: [timestamp]
               },
           }
       };
   
       try {
           // Send the UpdateEndpointCommand to update the endpoint's opt-in status
           const updateEndpointResponse = await pinClient.send(new UpdateEndpointCommand(params));
           console.log(updateEndpointResponse);
           console.log(`Successfully changed the opt status of endpoint ID ${endpointId}`);
       } catch (error) {
           console.error('An error occurred while updating endpoint:', error);
           throw error; // Rethrow the error to handle it upstream
       }
   }
   ```

1. In **Environment variables (Variabili di ambiente)**, effettuare le seguenti operazioni:
   + Nella prima riga, creare una variabile con una chiave di **projectId**. Successivamente, imposta il valore sull'ID univoco del progetto che hai creato in [Crea un progetto Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).
   + Nella seconda riga, creare una variabile con una chiave di **region**. Quindi, imposta il valore sulla regione in cui viene utilizzato Amazon Pinpoint, ad esempio **us-east-1** o **us-west-2**.
   + Nella terza riga, creare una variabile con una chiave di **confirmKeyword**. Successivamente, imposta il valore sulla parola chiave di conferma che hai creato in [Abilita SMS bidirezionali](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).
**Nota**  
La parola chiave non fa distinzione tra le lettere maiuscole e minuscole. Questa funzione converte il messaggio in entrata in lettere minuscole.

   Al termine, la sezione **Environment Variables (Variabili di ambiente)** dovrebbe essere simile all'esempio illustrato nella seguente immagine.  
![\[Le variabili di ambiente per ProjectId, region e confirmKeyword.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step2.7.png)

1. Nella parte superiore della pagina, scegli **Save (Salva)**.

### Test della funzione
<a name="tutorials-two-way-sms-part-3-create-optin-function-test"></a>

Una volta creata la funzione, è opportuno testarla per verificarne la corretta configurazione. Verifica inoltre che il ruolo IAM creato disponga delle autorizzazioni appropriate.

**Per testare la funzione**

1. Scegli **Test (Esegui test)**.

1. Nella finestra **Configure test event (Configura evento di test)**, seguire la procedura riportata di seguito:

   1. Scegliere **Create new test event** (Creare nuovo evento di test).

   1. Nel campo **Event name (Nome evento)**, inserire un nome per l'evento di test, ad esempio **MyResponse**.

   1. Cancellare il codice di esempio nell'editor di codici. Incolla il codice seguente:

      ```
      {
        "Records":[
          {
            "Sns":{
              "Message":"{\"originationNumber\":\"+12065550142\",\"messageBody\":\"Yes\"}",
              "Timestamp":"2019-02-20T17:47:44.147Z"
            }
          }
        ]
      }
      ```

      Nel codice di esempio precedente, sostituisci i valori dell'attributo `originationNumber` con il numero di telefono utilizzato durante il test della funzione Lambda precedente. Sostituisci il valore di `messageBody` con la parola chiave SMS bidirezionale specificata in [Abilita](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-enable-two-way) SMS bidirezionali. Opzionalmente è possibile sostituire il valore di `Timestamp` con la data e l'ora attuale.

   1. Scegli **Create** (Crea).

1. Scegliere **Test** di nuovo.

1. In **Execution result: succeeded (Risultato esecuzione: riuscita)**, selezionare **Details (Dettagli)**. Nella sezione **Log output (Output di log)**, riesaminare l'output della funzione. Verificare che la funzione sia stata eseguita senza errori.

1. Apri la console Amazon Pinpoint all'indirizzo. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Nella pagina **Tutti i progetti**, scegli il progetto che hai creato in [Crea un progetto Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. Nel riquadro di navigazione, selezionare **Segments (Segmenti)**. Nella **Segments page (Pagina segmenti)**, selezionare **Create a segment (Crea un segmento)**.

1. In **Segment group 1 (Gruppo segmenti 1)**, nel campo **Add filters to refine your segment (Aggiungi filtri per rifinire i segmenti)**, selezionare **Filter by user (Filtra per utente)**.

1. Per **Scegli un attributo utente**, scegli **FirstName**. Quindi, in **Choose values (Scegli valori)**, selezionare il nome specificato nell'evento di prova.

   La sezione **Segment estimate (Stima segmenti)** dovrebbe indicare che c'è un endpoint idoneo e un endpoint totale.

**Successivo**: [Configurazione di Gateway Amazon API](tutorials-two-way-sms-part-4.md)

# Configurazione di Amazon API Gateway per la messaggistica SMS in Amazon Pinpoint
<a name="tutorials-two-way-sms-part-4"></a>

In questa sezione, crei una nuova API utilizzando Amazon API Gateway come parte della registrazione SMS per Amazon Pinpoint. Il modulo di registrazione implementato in questa soluzione chiama questa API. API Gateway passa quindi le informazioni acquisite nel modulo di registrazione alla funzione Lambda creata in Create [Lambda functions](tutorials-two-way-sms-part-3.md).

## Creazione dell'API
<a name="tutorials-two-way-sms-part-4-create-api"></a>

In primo luogo, è necessario creare una nuova API in Gateway API. Le procedure seguenti mostrano come creare una nuova API REST.

**Per creare una nuova API**

1. Apri la console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Seleziona **Create API** (Crea API). Operare le seguenti selezioni:
   + In **Choose the protocol (Scegliere il protocollo)** scegliere **REST**.
   + In **Create new API (Crea nuova API)** scegliere **New API (Nuova API)**.
   + In **Settings (Impostazioni)**, per **Name (Nome)**, immettere un nome, come **RegistrationForm**. Per **Description (Descrizione)**, è possibile immettere un testo che descriva lo scopo dell'API. In **Endpoint Type (Tipo di endpoint)**, scegliere **Regional (Regionale)**. Quindi, scegliere **Create API (Crea API)**.

   Un esempio di queste impostazioni è illustrato nella seguente immagine.  
![\[Protocollo impostato su REST, Crea nuova API impostato su Nuova API, Nome API impostato RegistrationForm su e Tipo di endpoint impostato su Regionale.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step2.png)

## Creazione di una risorsa
<a name="tutorials-two-way-sms-part-4-create-resource"></a>

Dopo aver creato un'API, puoi iniziare ad aggiungere risorse al suo interno. In seguito, puoi aggiungere un metodo POST alla risorsa e indicare a Gateway API di trasferire i dati ricevuti da questo metodo alla funzione Lambda.

1. Nel menu **Actions (Operazioni)** scegliere **Create Resource (Crea risorsa)**. Nel riquadro **New Child Resource (Nuova risorsa figlio)**, per **Resource Name (Nome risorsa)**, immettere **register**, come illustrato nella seguente immagine. Scegliere **Create Resource (Crea risorsa)**.  
![\[Il nuovo riquadro delle risorse secondarie con il nome della risorsa impostato per la registrazione.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step3.png)

1. Nel menu **Actions (Operazioni)** scegliere **Create method (Crea metodo)**. Dal menu visualizzato, scegliere **POST**, come illustrato nella seguente immagine. Quindi scegli il pulsante con il **segno** di spunta.  
![\[Il riquadro di creazione del metodo con il segno di spunta selezionato.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step4.png)

1. Nel riquadro **/register - POST - Setup (registra - POST - Configura)**, effettua le seguenti selezioni:
   + Per **Integration type (Tipo di integrazione)**, scegliere **Lambda Function (Funzione Lambda)**.
   + Scegli **Usa integrazione proxy Lambda**.
   + In **Regione Lambda**, scegli la regione in cui è stata creata la funzione Lambda.
   + Per **Funzione Lambda**, scegli la RegisterEndpoint funzione che hai creato in Crea funzioni [Lambda](tutorials-two-way-sms-part-3.md).

   Un esempio di queste impostazioni è illustrato nella seguente immagine.  
![\[Il riquadro /register - POST - Setup con la funzione Lambda selezionata.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step5.png)

   Scegli **Save** (Salva). Nella finestra visualizzata, scegli **OK** per autorizzare Gateway API a eseguire la funzione Lambda.

## Distribuzione dell'API
<a name="tutorials-two-way-sms-part-4-deploy-api"></a>

L'API è ora pronta per l'uso. A questo punto, è necessario distribuirla per creare un endpoint accessibile pubblicamente.

1. Nel menu **Actions (Operazioni)**, scegliere **Deploy API (Distribuisci API)**. Nella finestra **Deploy API (Distribuisci API)**, effettuare le seguenti selezioni:
   + In **Deployment stage (Fase di distribuzione)**, scegliere **[New Stage] ([Nuova fase])**.
   + In **Stage name (Nome fase)** immettere **v1**.
   + Selezionare **Deploy (Distribuisci)**.

   Un esempio di queste selezioni è illustrato nella seguente immagine.  
![\[Le finestre dell'API di distribuzione con il nome dello stage impostato su v1\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step6.png)

1. Nel riquadro **v1 Stage Editor (Editor fasi v1)**, scegliere la risorsa **/register (/registra)** e poi scegliere il metodo **POST**. Copiare l'indirizzo che viene visualizzato accanto a **Invoke URL (URL chiamata)**, come illustrato nella seguente immagine.  
![\[Il riquadro v1 Stage Editor che mostra l'URL Invoke da copiare\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step7.png)

1. Nel riquadro di spostamento seleziona **Resources (Risorse)**. Nell'elenco delle risorse, scegliere la risorsa **/register (/registra)**. Infine, nel menu **Actions (Operazioni)**, scegliere **Enable CORS (Abilita CORS)**, come illustrato nella seguente immagine.  
![\[Il menu a discesa per Azioni, mostra che l'opzione Abilita CORS è selezionata\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step8.png)

1. Nel riquadro **Enable CORS (Abilita CORS)**, scegliere **Enable CORS and replace existing CORS headers (Abilita CORS e sostituisci intestazioni CORS esistenti)**.

**Successivo**: [Creazione e distribuzione del modulo Web](tutorials-two-way-sms-part-5.md)

# Crea e distribuisci il modulo Web per utilizzare la messaggistica SMS per Amazon Pinpoint
<a name="tutorials-two-way-sms-part-5"></a>

Tutti i componenti che utilizzano i AWS servizi per la messaggistica SMS tramite Amazon Pinpoint sono ora disponibili. L'ultima fase prevede la creazione e la distribuzione del modulo Web che acquisisce i dati del cliente.

## Crea il gestore del JavaScript modulo
<a name="tutorials-two-way-sms-part-5-create-form-handler"></a>

In questa sezione, crei una JavaScript funzione che analizza il contenuto del modulo Web creato nella sezione successiva. Dopo aver analizzato il contenuto, questa funzione invia i dati all'API che hai creato in [Configurare Amazon API Gateway](tutorials-two-way-sms-part-4.md).

**Per creare il gestore del modulo**

1. In un editor di testo, crea un nuovo file.

1. Nell'editor, incollare il seguente codice.

   ```
   $(document).ready(function() {
   
     // Handle form submission.
     $("#submit").click(function(e) {
   
       var firstName = $("#firstName").val(),
           lastName = $("#lastName").val(),
           source = window.location.pathname,
           optTimestamp = undefined,
           utcSeconds = Date.now() / 1000,
           timestamp = new Date(0),
           phone = $("#areaCode").val()
                 + $("#phone1").val()
                 + $("#phone2").val();
   
       e.preventDefault();
   
       if (firstName == "") {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your first name.</div>');
       } else if (lastName == "") {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your last name.</div>');
       } else if (phone.match(/[^0-9]/gi)) {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Your phone number contains invalid characters. Please check the phone number that you supplied.</div>');
       } else if (phone.length < 10) {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your phone number.</div>');
       } else if (phone.length > 10) {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Your phone number contains too many digits. Please check the phone number that you supplied.</div>');
       } else {
         $('#submit').prop('disabled', true);
         $('#submit').html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>  Saving your preferences</button>');
   
         timestamp.setUTCSeconds(utcSeconds);
   
         var data = JSON.stringify({
           'destinationNumber': phone,
           'firstName': firstName,
           'lastName': lastName,
           'source': source,
           'optTimestamp': timestamp.toString()
         });
   
         $.ajax({
           type: 'POST',
           url: 'https://example.execute-api.us-east-1.amazonaws.com/v1/register',
           contentType: 'application/json',
           data: data,
           success: function(res) {
             $('#form-response').html('<div class="mt-3 alert alert-success" role="alert"><p>Congratulations! You&apos;ve successfully registered for SMS Alerts from ExampleCorp.</p><p>We just sent you a message. Follow the instructions in the message to confirm your subscription. We won&apos;t send any additional messages until we receive your confirmation.</p><p>If you decide you don&apos;t want to receive any additional messages from us, just reply to one of our messages with the keyword STOP.</p></div>');
             $('#submit').prop('hidden', true);
             $('#unsubAll').prop('hidden', true);
             $('#submit').text('Preferences saved!');
           },
           error: function(jqxhr, status, exception) {
             $('#form-response').html('<div class="mt-3 alert alert-danger" role="alert">An error occurred. Please try again later.</div>');
             $('#submit').text('Save preferences');
             $('#submit').prop('disabled', false);
           }
         });
       }
     });
   });
   ```

1. Nell'esempio precedente, sostituiscilo *https://example.execute-api.us-east-1.amazonaws.com/v1/register* con l'URL Invoke che hai ottenuto in [Deploy](tutorials-two-way-sms-part-4.md#tutorials-two-way-sms-part-4-deploy-api) the API.

1. Salvare il file.

## Create il file del modulo
<a name="tutorials-two-way-sms-part-5-create-form"></a>

In questa sezione, viene creato un file HTML contenente il modulo utilizzato dai clienti per effettuare la registrazione al tuo programma SMS. Questo file utilizza il gestore di JavaScript moduli creato nella sezione precedente per trasmettere i dati del modulo alla funzione Lambda.

**Importante**  
L'invio del modulo da parte di un attiva una funzione Lambda che chiama varie operazioni dell'API Amazon Pinpoint. Utenti malintenzionati potrebbero lanciare un attacco al modulo, che potrebbe provocare un elevato numero di richieste. Se prevedi di utilizzare questa soluzione per un caso d'uso di produzione, è consigliabile proteggerla tramite un sistema come [Google reCAPTCHA](https://www.google.com/recaptcha/about/).

**Per creare il modulo**

1. In un editor di testo, crea un nuovo file.

1. Nell'editor, incollare il seguente codice.

   ```
   <!doctype html>
   <html lang="en">
   
   <head>
     <!-- Meta tags required by Bootstrap -->
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
   
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
     <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   
     <script type="text/javascript" src="SMSFormHandler.js"></script>
     <title>SMS Registration Form</title>
   </head>
   
   <body>
     <div class="container">
       <div class="row justify-content-center mt-3">
         <div class="col-md-6">
           <h1>Register for SMS Alerts</h1>
           <p>Enter your phone number below to sign up for PromotionName messages from ExampleCorp.</p>
           <p>We don't share your contact information with anyone else. For more information, see our <a href="http://example.com/privacy">Privacy Policy</a>.</p>
           <p>ExampleCorp alerts are only available to recipients in the United States.</p>
         </div>
       </div>
       <div class="row justify-content-center">
         <div class="col-md-6">
           <form>
             <div class="form-group">
               <label for="firstName" class="font-weight-bold">First name</label>
               <input type="text" class="form-control" id="firstName" placeholder="Your first name" required>
             </div>
             <div class="form-group">
               <label for="lastName" class="font-weight-bold">Last name</label>
               <input type="text" class="form-control" id="lastName" placeholder="Your last name" required>
             </div>
             <label for="areaCode" class="font-weight-bold">Phone number</label>
             <div class="input-group">
               <span class="h3">(&nbsp;</span>
               <input type="tel" class="form-control" id="areaCode" placeholder="Area code" required>
               <span class="h3">&nbsp;)&nbsp;</span>
               <input type="tel" class="form-control" id="phone1" placeholder="555" required>
               <span class="h3">&nbsp;-&nbsp;</span>
               <input type="tel" class="form-control" id="phone2" placeholder="0199" required>
             </div>
             <div id="form-response"></div>
             <button id="submit" type="submit" class="btn btn-primary btn-block mt-3">Submit</button>
           </form>
         </div>
       </div>
       <div class="row mt-3">
         <div class="col-md-12 text-center">
           <small class="text-muted">Copyright © 2019, ExampleCorp or its affiliates.</small>
         </div>
       </div>
     </div>
   </body>
   
   </html>
   ```

1. Nell'esempio precedente, sostituiscilo *SMSFormHandler.js* con il percorso completo del JavaScript file del gestore del modulo creato nella sezione precedente.

1. Salvare il file.

## Caricate i file del modulo
<a name="tutorials-two-way-sms-part-5-upload-form"></a>

Ora che hai creato il modulo HTML e il gestore del JavaScript modulo, l'ultimo passaggio consiste nel pubblicare questi file su Internet. In questa sezione si presuppone la disponibilità di un provider di hosting Web. Se non disponi di un provider di hosting esistente, puoi avviare un sito Web utilizzando Amazon Route 53, Amazon Simple Storage Service (Amazon S3) e Amazon. CloudFront Per ulteriori informazioni, consulta [Hosting di un sito Web statico](https://aws.amazon.com/getting-started/hands-on/host-static-website/).

Se utilizzi un altro provider di hosting Web, consulta la documentazione di tale provider per ulteriori informazioni sulla pubblicazione di pagine Web.

## Test del modulo
<a name="tutorials-two-way-sms-part-5-test-form"></a>

Una volta pubblicato il modulo, è necessario inviare alcuni eventi di test per verificare che funzioni come previsto.

**Per eseguire il test del modulo di registrazione**

1. In un browser Web, andare alla posizione in cui è stato caricato il modulo di registrazione. Se hai utilizzato l'esempio di codice di [Create the JavaScript form handler](#tutorials-two-way-sms-part-5-create-form), vedrai un modulo simile all'esempio nell'immagine seguente.  
![\[Il modulo di richiesta del cliente creato nel passaggio 5.1.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_Form_Step5.3.1.png)

1. Inserire le proprie informazioni di contatto nei campi **First name (Nome)**, **Last name (Cognome)** e **Phone number (Numero di telefono)**.
**Nota**  
Quando si invia il modulo, Amazon Pinpoint prova a inviare un messaggio al numero di telefono specificato. A causa di questa funzionalità, è necessario utilizzare un numero di telefono reale per eseguire il test della soluzione dall'inizio alla fine.  
Se hai testato la funzione Lambda in Create [Lambda functions](tutorials-two-way-sms-part-3.md), il tuo progetto Amazon Pinpoint contiene già almeno un endpoint. Quando provi questo modulo, devi inviare un numero di telefono diverso nel modulo o eliminare l'endpoint esistente utilizzando l'operazione API. [DeleteEndpoint](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html#DeleteEndpoint)

1. Controllare il dispositivo associato al numero di telefono specificato per verificare che abbia ricevuto il messaggio.

1. Apri la console Amazon Pinpoint all'indirizzo. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Nella pagina **Tutti i progetti**, scegli il progetto che hai creato in [Crea un progetto Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. Nel riquadro di navigazione, selezionare **Segments (Segmenti)**. Nella **Segments page (Pagina segmenti)**, selezionare **Create a segment (Crea un segmento)**.

1. In **Segment group 1 (Gruppo segmenti 1)**, nel campo **Add filters to refine your segment (Aggiungi filtri per rifinire i segmenti)**, selezionare **Filter by user (Filtra per utente)**.

1. Per **Scegli un attributo utente**, scegli **FirstName**. Quindi, in **Choose values (Scegli valori)**, scegliere il nome specificato al momento dell'invio del modulo.

   La sezione **Segment estimate (Stima segmenti)** dovrebbe indicare che non ci sono endpoint idonei e un endpoint (in Total endpoints (Endpoint totali)), come illustrato nella seguente immagine. Questo risultato è previsto. Quando la funzione Lambda crea un nuovo endpoint, per tale endpoint viene eseguito l'opt-out per impostazione predefinita.  
![\[Un segmento con zero ha optato per gli endpoint.\]](http://docs.aws.amazon.com/it_it/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step8.9.png)

1. Sul dispositivo che ha ricevuto il messaggio, rispondi al messaggio con la parola chiave SMS bidirezionale che hai specificato in [Abilita](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-enable-two-way) SMS bidirezionali. Amazon Pinpoint invia immediatamente un messaggio di risposta.

1. Nella console Amazon Pinpoint, ripeti i passaggi da 4 a 8. Questa volta, quando si crea il segmento, vengono visualizzati un endpoint idoneo e un endpoint totale. Questo risultato è previsto, poiché è stato fornito il consenso.

# Fasi successive
<a name="tutorials-two-way-sms-next-steps"></a>

Completando questo tutorial hai effettuato quanto segue:
+ Creazione di un progetto Amazon Pinpoint, configurazione del canale SMS e recupero di un codice lungo dedicato.
+ Creazione di una policy IAM che utilizza il principale del privilegio minimo per concedere i diritti di accesso e associazione di tale policy a un ruolo.
+ Ha creato due funzioni Lambda che utilizzano le SendMessages operazioni PhoneNumberValidate UpdateEndpoint, e nell'API Amazon Pinpoint.
+ Creazione di una REST API utilizzando Gateway API
+ Create e distribuito un modulo basato sul Web che consente di raccogliere informazioni di contatto dei clienti.
+ Eseguito test sulla soluzione per verificare che funzioni come previsto.

In questa sezione vengono illustrati alcuni modi in cui è possibile utilizzare le informazioni raccolte utilizzando questa soluzione. Include anche alcuni suggerimenti su come è possibile personalizzare questa soluzione per adattarla al caso d'uso unico specifico.

## Creazione di segmenti di clientela
<a name="tutorials-two-way-sms-next-steps-create-segments"></a>

Tutti i dettagli del cliente raccolti tramite questo modulo vengono memorizzati come endpoint. Questa soluzione consente di creare endpoint che contengono numerosi attributi utilizzabili a scopo di segmentazione.

Ad esempio, questa soluzione acquisisce un attributo di endpoint chiamato `Source`. Questo attributo contiene il percorso completo alla posizione in cui il modulo è stato ospitato. Quando crei un segmento, puoi filtrarlo per endpoint, quindi perfezionare ulteriormente il filtro scegliendo un attributo `Source`.

La creazione di segmenti in base all'attributo `Source` può essere utile in diversi modi. In primo luogo, ti consente di creare rapidamente un segmento di clienti che già si sono registrati per ricevere i tuoi SMS. Inoltre, lo strumento di segmentazione in Amazon Pinpoint esclude automaticamente gli endpoint che non hanno eseguito l'opt-in per la ricezione dei messaggi.

L'attributo `Source` è utile anche se decidi di ospitare il modulo di registrazione in diverse posizioni. Ad esempio, il materiale di marketing potrebbe fare riferimento a un modulo ospitato in un'unica posizione, mentre i clienti che trovano il modulo mentre navigano sul tuo sito Web potrebbero vedere una versione ospitata altrove. In questo modo, gli attributi di origine per i clienti che completano il modulo dopo aver visto i materiali di marketing sono differenti da quelli che completano il modulo dopo averlo trovato sul tuo sito Web. Puoi usare questa differenza per creare segmenti distinti e quindi inviare comunicazioni personalizzate a ognuno di questi gruppi di destinatari.

## Invio di messaggi personalizzati per campagne
<a name="tutorials-two-way-sms-next-steps-send-campaigns"></a>

Dopo aver creato i segmenti, puoi iniziare a inviare campagne a tali segmenti. Quando si creano messaggi per le campagne, è possibile personalizzarli specificando gli attributi di endpoint da includere nel messaggio. Ad esempio, il modulo Web utilizzato in questa soluzione richiede al cliente di immettere il proprio nome e cognome. Questi valori vengono memorizzati nel record utente associato all'endpoint.

Ad esempio, se utilizzi l'operazione API `GetEndpoint` per recuperare informazioni su un endpoint che è stato creato utilizzando questa soluzione, vedrai una sezione simile alla seguente:

```
  ...
  "User": {
    "UserAttributes": {
      "FirstName": [
        "Carlos"
      ],
      "LastName": [
        "Salazar"
      ]
    }
  }
  ...
```

Se vuoi includere i valori di questi attributi nel messaggio della tua campagna, puoi utilizzare la notazione punto per fare riferimento all'attributo. Quindi racchiudere l'intero riferimento in parentesi graffe doppie. Ad esempio, per inserire il nome di ciascun destinatario nel messaggio di una campagna, includere la seguente stringa nel messaggio: `{{User.UserAttributes.FirstName}}`. Quando Amazon Pinpoint invia il messaggio, sostituisce la stringa con il valore dell'attributo `FirstName`.

## Uso del modulo per raccogliere informazioni aggiuntive
<a name="tutorials-two-way-sms-next-steps-collect-additional"></a>

È possibile modificare questa soluzione per raccogliere informazioni aggiuntive per il modulo di registrazione. Ad esempio, è possibile chiedere al cliente di fornire il proprio indirizzo e quindi utilizzare i dati dell'indirizzo per popolare i campi `Location.City`, `Location.Country`, `Location.Region` e `Location.PostalCode` nella risorsa `Endpoint`. La raccolta di informazioni relative all'indirizzo nel modulo di registrazione potrebbe far sì che gli endpoint contengano informazioni più dettagliate. Per apportare questa modifica, è necessario aggiungere i campi appropriati al modulo Web. È inoltre necessario modificare il JavaScript codice del modulo per passare i nuovi valori. Infine, è necessario modificare la funzione Lambda che crea l'endpoint per gestire le nuove informazioni in entrata.

È anche possibile modificare il modulo in modo che raccolga le informazioni di contatto in altri canali. Ad esempio, è possibile usare il modulo per raccogliere l'indirizzo e-mail del cliente oltre al suo numero di telefono. Per apportare questa modifica, è necessario modificare l'HTML e JavaScript il modulo web. È inoltre necessario modificare la funzione Lambda in modo che crei due endpoint distinti, ovvero uno per l'endpoint e-mail e uno per l'endpoint SMS. È inoltre necessario modificare la funzione Lambda in modo che generi un valore univoco per l'attributo `User.UserId` e quindi associ tale valore a entrambi gli endpoint.

## Registrazione di attributi aggiuntivi per finalità di audit
<a name="tutorials-two-way-sms-next-steps-auditing"></a>

Questa soluzione registra due preziosi attributi quando crea e aggiorna gli endpoint. Innanzitutto, quando la prima funzione Lambda crea inizialmente l'endpoint, registra l'URL del modulo stesso nell'attributo `Attributes.Source`. Se il cliente risponde al messaggio, la seconda funzione Lambda crea un attributo `Attributes.OptInTimestamp`. Questo attributo contiene la data e l'ora esatte del momento in cui il cliente ha fornito il suo consenso a ricevere messaggi da parte tua.

Entrambi questi campi possono essere utili se un operatore telefonico o un'agenzia di regolamentazione dovesse richiedere di fornire prova del consenso del cliente. È possibile recuperare queste informazioni in qualsiasi momento utilizzando l'operazione [GetEndpoint](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html#GetEndpoint)API.

È anche possibile modificare le funzioni Lambda per la registrazione di dati aggiuntivi che possono essere utili per finalità di audit, ad esempio l'indirizzo IP da cui è stata inviata la richiesta di registrazione.