

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

# Destinazioni di messaggi ed eventi in AWS End User Messaging Social
<a name="managing-event-destinations"></a>

La destinazione di un evento è un argomento di Amazon SNS o un'istanza Amazon Connect a cui vengono inviati WhatsApp gli eventi. Quando attivi la pubblicazione degli eventi, tutti gli eventi di invio e ricezione vengono inviati al messaggio e alla destinazione dell'evento. Usa gli eventi per monitorare, tracciare e analizzare lo stato dei messaggi in uscita e delle comunicazioni in arrivo con i clienti.

Ogni account WhatsApp aziendale (WABA) può avere una destinazione per l'evento. Tutti gli eventi di tutte le risorse associate al WABA vengono registrati nella destinazione dell'evento. Ad esempio, è possibile avere un WABA con tre numeri di telefono associati e tutti gli eventi di tali numeri di telefono vengono registrati nell'unica destinazione dell'evento.

**Topics**
+ [Aggiungi un messaggio e una destinazione di eventi a AWS End User Messaging Social](managing-event-destinations-add.md)
+ [Formato di messaggi ed eventi in AWS End User Messaging Social](managing-event-destination-dlrs.md)
+ [WhatsApp stato del messaggio](managing-event-destinations-status.md)

# Aggiungi un messaggio e una destinazione di eventi a AWS End User Messaging Social
<a name="managing-event-destinations-add"></a>

Quando attivi la pubblicazione di messaggi ed eventi, tutti gli eventi generati dal tuo account WhatsApp aziendale (WABA) vengono inviati all'argomento Amazon SNS. Sono inclusi gli eventi per ogni numero di telefono associato a un WABA. Al tuo WABA può essere associato un argomento di Amazon SNS. 

## Prerequisiti
<a name="managing-event-destinations-add_prerequisite"></a>

Prima di iniziare, è necessario soddisfare i seguenti prerequisiti per utilizzare un argomento Amazon SNS o un'istanza Amazon Connect come destinazione di messaggi ed eventi.

**Argomento Amazon SNS**
+ È stato [creato](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) un argomento Amazon SNS e sono state aggiunte [le autorizzazioni](#managing-event-destinations-sns-policies).
**Nota**  
Gli argomenti FIFO di Amazon SNS non sono supportati.
+ **(Facoltativo)** Per utilizzare un argomento Amazon SNS crittografato tramite AWS KMS chiavi, devi concedere le autorizzazioni AWS End User Messaging Social per la politica delle chiavi [esistente](#managing-event-destinations-topic-policies). 

**istanza Amazon Connect**
+ È stata [creata](https://docs.aws.amazon.com/connect/latest/adminguide/tutorial1-set-up-your-instance.html) un'istanza Amazon Connect e sono state [aggiunte le autorizzazioni](#managing-event-destinations-amazon-connect-policies).

## Aggiungi un messaggio e una destinazione per l'evento
<a name="managing-event-destinations-add_steps"></a>

1. Apri la console AWS End User Messaging Social all'indirizzo [https://console.aws.amazon.com/social-messaging/](https://console.aws.amazon.com/social-messaging/).

1. Scegli un **account aziendale**, quindi scegli un WABA.

1. Nella scheda **Destinazione dell’evento**, scegli **Modifica destinazione**.

1. Per attivare la destinazione di un evento, scegli **Abilita.**

1. Per il **tipo di destinazione** scegli Amazon SNS o Amazon Connect

   1. **Per inviare i tuoi eventi a una destinazione Amazon SNS, inserisci un argomento ARN esistente in Argomento ARN.** Per esempi di policy IAM, consulta [Policy IAM per gli argomenti di Amazon SNS](#managing-event-destinations-sns-policies).

   1. Per Amazon Connect

      1. Per l'**istanza Connect** scegli un'istanza dal menu a discesa.

      1. Per il **ruolo del canale bidirezionale**, scegli una delle seguenti opzioni:

         1. **Scegli un ruolo IAM esistente**: scegli una policy IAM esistente dal menu a discesa **Ruoli IAM esistenti**. Per esempi di policy IAM, consulta [Policy IAM per Amazon Connect](#managing-event-destinations-amazon-connect-policies).

         1. **Inserisci l'ARN del ruolo IAM**: inserisci l'ARN della policy IAM in **Usa il ruolo IAM esistente** Arn. Per esempi di policy IAM, consulta [Policy IAM per Amazon Connect](#managing-event-destinations-amazon-connect-policies).

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

## Policy tematiche crittografate di Amazon SNS
<a name="managing-event-destinations-topic-policies"></a>

Puoi utilizzare argomenti di Amazon SNS crittografati tramite AWS KMS chiavi per un ulteriore livello di sicurezza. Questo livello aggiuntivo di sicurezza può essere utile se l'applicazione gestisce dati privati o sensibili. Per ulteriori informazioni sulla crittografia degli argomenti di Amazon SNS AWS KMS utilizzando le chiavi, [consulta Abilitare la compatibilità tra le AWS fonti di eventi dei servizi e gli argomenti crittografati](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#compatibility-with-aws-services) nella *Amazon Simple Notification Service* Developer Guide.

**Nota**  
Gli argomenti FIFO di Amazon SNS non sono supportati.

L'istruzione di esempio utilizza le `SourceArn` condizioni, facoltative ma consigliate, `SourceAccount` per evitare il confuso problema dell'assistente e solo l'account proprietario di AWS End User Messaging Social può accedervi. Per ulteriori informazioni sul problema del vice confuso, consulta [Il problema del vice confuso](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html) nella *[guida per l'utente di IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)*.

La chiave da usare deve essere *simmetrica*. Gli argomenti crittografati di Amazon SNS non supportano le chiavi AWS KMS asimmetriche.

La policy chiave deve essere modificata per consentire all'utente AWS finale di Messaging Social di utilizzare la chiave. Segui le istruzioni riportate in [Modifica di una politica chiave](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html), nella *Guida per gli AWS Key Management Service sviluppatori*, per aggiungere le seguenti autorizzazioni alla politica chiave esistente:

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "social-messaging.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey*",
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{ACCOUNT_ID}"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:{PARTITION}:social-messaging:{REGION}:{ACCOUNT_ID}:*"
        }
     }
}
```

## Policy IAM per gli argomenti di Amazon SNS
<a name="managing-event-destinations-sns-policies"></a>

Per utilizzare un ruolo IAM esistente o creare un nuovo ruolo, allega la seguente policy a quel ruolo in modo che AWS End User Messaging Social possa assumerlo. Per informazioni su come modificare la relazione di trust di un ruolo, consulta [Modifying a Role](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html) nella [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html).

Di seguito è riportata la **politica di autorizzazione** per il ruolo IAM. La politica di autorizzazione consente la pubblicazione su argomenti di Amazon SNS.

Nella seguente politica di autorizzazione IAM, apporta le seguenti modifiche:
+ Sostituiscila *\$1PARTITION\$1* con la AWS partizione in cui utilizzi AWS End User Messaging Social.
+ *\$1REGION\$1*Sostituiscila con Regione AWS quella in cui utilizzi AWS End User Messaging Social.
+ Sostituiscilo *\$1ACCOUNT\$1* con l'ID univoco del tuo Account AWS.
+ Sostituisci *\$1TOPIC\$1NAME\$1* con gli argomenti di Amazon SNS che riceveranno i messaggi.

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": [
          "social-messaging.amazonaws.com"
        ]
       },
    "Action": "sns:Publish",
    "Resource": "arn:{PARTITION}:sns:{REGION}:{ACCOUNT}:{TOPIC_NAME}"
}
```

## Policy IAM per Amazon Connect
<a name="managing-event-destinations-amazon-connect-policies"></a>

Se desideri che AWS End User Messaging Social utilizzi un ruolo IAM esistente o se ne crei uno nuovo, associa le seguenti policy a quel ruolo in modo che AWS End User Messaging Social possa assumerlo. Per informazioni su come modificare una relazione di trust esistente di un ruolo, consulta [Modifying a Role](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html) nella [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html). Questo ruolo viene utilizzato sia per l'invio di eventi che per l'importazione di numeri di telefono da AWS End User Messaging Social in Amazon Connect.

Per creare nuove policy IAM, procedi come segue:

1. Crea una nuova **policy di autorizzazione** seguendo le istruzioni riportate in [Creazione di policy using the JSON editor](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) nella IAM User Guide.

   1. Nella fase 5 utilizza la **politica di autorizzazione** per il ruolo IAM per consentire la pubblicazione su Amazon Connect.

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

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "AllowOperationsForEventDelivery",
                 "Effect": "Allow",
                 "Action": [
                     "connect:SendIntegrationEvent"
                 ],
                 "Resource": "*"
             },
             {
                 "Sid": "AllowOperationsForPhoneNumberImport",
                 "Effect": "Allow",
                 "Action": [
                     "connect:ImportPhoneNumber",
                     "social-messaging:GetLinkedWhatsAppBusinessAccountPhoneNumber",
                     "social-messaging:TagResource"
                 ],
                 "Resource": "*"
             }
         ]
     }
     ```

------

1. Crea una nuova **policy di fiducia** seguendo le istruzioni riportate nella sezione [Creazione di un ruolo utilizzando politiche di fiducia personalizzate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) nella Guida per l'utente IAM.

   1. Nella fase 4 utilizza la **policy di fiducia** per il ruolo IAM.

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "social-messaging.amazonaws.com"
                      ]
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Nel passaggio 10 aggiungi la **politica di autorizzazione** creata nel passaggio precedente.

## Fasi successive
<a name="managing-event-destinations_next_steps"></a>

Dopo aver impostato l'argomento Amazon SNS, devi sottoscrivere un endpoint all'argomento. L'endpoint inizierà a ricevere messaggi pubblicati sull'argomento associato. Per ulteriori informazioni sulla sottoscrizione a un argomento, consulta [Abbonamento a un argomento Amazon SNS nella Amazon SNS Developer](https://docs.aws.amazon.com//sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) *Guide*.

# Formato di messaggi ed eventi in AWS End User Messaging Social
<a name="managing-event-destination-dlrs"></a>

L'oggetto JSON per un evento contiene l'intestazione dell' AWS evento e il payload WhatsApp JSON. *Per un elenco del payload e dei valori della WhatsApp notifica JSON, consulta [Webhooks Notification Payload Reference e [Message](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status) Status nel Business Platform Cloud API Reference](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components). WhatsApp *

## AWS Intestazione dell'evento social di messaggistica per l'utente finale
<a name="managing-event-destination-dlrs_body"></a>

L'oggetto JSON di un evento contiene l'intestazione dell'evento e il AWS codice JSON. WhatsApp L'intestazione contiene gli AWS identificatori e il tuo account WhatsApp aziendale (WABA) e il numero ARNs di telefono.

```
{
  "context": {
    "MetaWabaIds": [
      {
        "wabaId": "1234567890abcde",
        "arn": "arn:aws:social-messaging:us-east-1:123456789012:waba/fb2594b8a7974770b128a409e2example"
      }
    ],
    "MetaPhoneNumberIds": [
      {
        "metaPhoneNumberId": "abcde1234567890",
        "arn": "arn:aws:social-messaging:us-east-1:123456789012:phone-number-id/976c72a700aac43eaf573ae050example"
      }
    ]
  },
  "whatsAppWebhookEntry": "{\"...JSON STRING....",
  "aws_account_id": "123456789012",
  "message_timestamp": "2025-01-08T23:30:43.271279391Z",
  "messageId": "6d69f07a-c317-4278-9d5c-6a84078419ec"
}
//Decoding the contents of whatsAppWebhookEntry
{
//WhatsApp notification payload
}
```

Nell'evento di esempio precedente:
+ *1234567890abcde*è l'id WABA di Meta.
+ *abcde1234567890*è l'id del numero di telefono di Meta.
+ *fb2594b8a7974770b128a409e2example*è l'ID dell'account WhatsApp aziendale (WABA).
+ *976c72a700aac43eaf573ae050example*è l'ID del numero di telefono.

## Esempio WhatsApp JSON per la ricezione di un messaggio
<a name="managing-event-destination-dlrs-example-receive-text"></a>

Di seguito viene mostrato il record dell'evento per un messaggio in arrivo da WhatsApp. Il codice JSON ricevuto da WhatsApp in `whatsAppWebhookEntry` viene ricevuto come stringa JSON e può essere convertito in JSON. *Per un elenco dei campi e il loro significato, consulta [Webhooks Notification Payload Reference nel Business Platform Cloud API Reference](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components). WhatsApp *

```
{
  "context": {
    "MetaWabaIds": [
      {
        "wabaId": "1234567890abcde",
        "arn": "arn:aws:social-messaging:us-east-1:123456789012:waba/fb2594b8a7974770b128a409e2example"
      }
    ],
    "MetaPhoneNumberIds": [
      {
        "metaPhoneNumberId": "abcde1234567890",
        "arn": "arn:aws:social-messaging:us-east-1:123456789012:phone-number-id/976c72a700aac43eaf573ae050example"
      }
    ]
  },
  "whatsAppWebhookEntry": "{\"...JSON STRING....",
  "aws_account_id": "123456789012",
  "message_timestamp": "2025-01-08T23:30:43.271279391Z",
  "messageId": "6d69f07a-c317-4278-9d5c-6a84078419ec"
}
```

Puoi usare uno strumento, come [jq, per convertire la stringa JSON](https://jqlang.org/) in JSON. Quanto segue è il formato JSON`whatsAppWebhookEntry`:

```
{
  "id": "503131219501234",
  "changes": [
    {
      "value": {
        "messaging_product": "whatsapp",
        "metadata": {
          "display_phone_number": "14255550123",
          "phone_number_id": "46271669example"
        },
        "statuses": [
          {
            "id": "wamid.HBgLMTkxNzM5OTI3MzkVAgARGBJBMTM4NDdGRENEREI5Rexample",
            "status": "sent",
            "timestamp": "1736379042",
            "recipient_id": "01234567890",
            "conversation": {
              "id": "62374592e84cb58e52bdaed31example",
              "expiration_timestamp": "1736461020",
              "origin": {
                "type": "utility"
              }
            },
            "pricing": {
              "billable": true,
              "pricing_model": "CBP",
              "category": "utility"
            }
          }
        ]
      },
      "field": "messages"
    }
  ]
}
```

## Esempio WhatsApp JSON per la ricezione di un messaggio multimediale
<a name="managing-event-destination-dlrs-example-receive-media"></a>

Quanto segue mostra il record dell'evento per un messaggio multimediale in arrivo. Per recuperare il file multimediale, utilizzate il comando GetWhatsAppMessageMedia API. Per un elenco dei campi e il loro significato, consulta [Webhooks](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) Notification Payload Reference

```
{
//AWS End User Messaging Social header
}
//Decoding the contents of whatsAppWebhookEntry
{
  "id": "365731266123456",
  "changes": [
    {
      "value": {
        "messaging_product": "whatsapp",
        "metadata": {
          "display_phone_number": "12065550100",
          "phone_number_id": "321010217760100"
        },
        "contacts": [
          {
            "profile": {
              "name": "Diego"
            },
            "wa_id": "12065550102"
          }
        ],
        "messages": [
          {
            "from": "14255550150",
            "id": "wamid.HBgLMTQyNTY5ODgzMDIVAgASGCBDNzBDRjM5MDU2ODEwMDkwREY4ODBDRDE0RjVGRkexample",
            "timestamp": "1723506230",
            "type": "image",
            "image": {
              "mime_type": "image/jpeg",
              "sha256": "BTD0xlqSZ7l02o+/upusiNStlEZhA/urkvKf143Uqjk=",
              "id": "530339869524171"
            }
          }
        ]
      },
      "field": "messages"
    }
  ]
}
```

# WhatsApp stato del messaggio
<a name="managing-event-destinations-status"></a>

Quando invii un messaggio, ricevi aggiornamenti sullo stato del messaggio. È necessario abilitare la registrazione degli eventi per ricevere queste notifiche, vedi[Destinazioni di messaggi ed eventi in AWS End User Messaging SocialDestinazioni di messaggi ed eventi](managing-event-destinations.md).

## Stati dei messaggi
<a name="managing-event-destinations-status_body"></a>

La tabella seguente contiene i possibili stati dei messaggi.


****  

| Nome dello stato | Description | 
| --- | --- | 
| accettati | Il messaggio è stato accettato WhatsApp per l'elaborazione. | 
| deleted (eliminato) | Il cliente ha eliminato il messaggio e dovresti eliminare anche il messaggio se è stato scaricato sul tuo server. | 
| consegnato | Il messaggio è stato recapitato correttamente al cliente. | 
| Non riuscito | Il messaggio non è stato inviato. | 
| Tentativi esauriti, il messaggio è stato interrotto. | Non è stato possibile consegnare il messaggio WhatsApp entro il periodo di 180 minuti tra i tentativi ed è stato eliminato. | 
| read | Il cliente ha letto il messaggio. Questo stato viene inviato solo se il cliente ha attivato le ricevute di lettura. | 
| inviato | Il messaggio è stato inviato ma è ancora in transito. | 
| attenzione | Il messaggio contiene un elemento che non è disponibile o non esiste. | 

## Risorse aggiuntive
<a name="managing-event-destinations-status_additional_resources"></a>

Per ulteriori informazioni, consulta [lo stato del messaggio](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status) nel documento *WhatsApp Business Platform Cloud API Reference*.