

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Destinations des messages et des événements dans AWS End User Messaging Social
<a name="managing-event-destinations"></a>

Une destination d'événement est une rubrique Amazon SNS ou une instance Amazon Connect vers laquelle les WhatsApp événements sont envoyés. Lorsque vous activez la publication d'événements, tous vos événements d'envoi et de réception sont envoyés à la destination du message et de l'événement. Utilisez les événements pour surveiller, suivre et analyser le statut des messages sortants et des communications clients entrantes.

Chaque compte WhatsApp professionnel (WABA) peut avoir une destination pour un événement. Tous les événements provenant de toutes les ressources associées à la WABA sont enregistrés sur cette destination d'événement. Par exemple, vous pouvez avoir une WABA associée à trois numéros de téléphone et tous les événements associés à ces numéros de téléphone sont enregistrés sur une seule destination.

**Topics**
+ [Ajouter un message et une destination d'événement à AWS End User Messaging Social](managing-event-destinations-add.md)
+ [Format des messages et des événements dans AWS End User Messaging Social](managing-event-destination-dlrs.md)
+ [WhatsApp état du message](managing-event-destinations-status.md)

# Ajouter un message et une destination d'événement à AWS End User Messaging Social
<a name="managing-event-destinations-add"></a>

Lorsque vous activez la publication de messages et d'événements, tous les événements générés par votre compte WhatsApp professionnel (WABA) sont envoyés à la rubrique Amazon SNS. Cela inclut les événements pour chaque numéro de téléphone associé à une WABA. Une rubrique Amazon SNS peut être associée à votre WABA. 

## Conditions préalables
<a name="managing-event-destinations-add_prerequisite"></a>

Avant de commencer, les conditions préalables suivantes doivent être remplies pour utiliser une rubrique Amazon SNS ou une instance Amazon Connect comme destination de messages et d'événements.

**Rubrique Amazon SNS**
+ Une rubrique Amazon SNS a été [créée](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) et des [autorisations](#managing-event-destinations-sns-policies) ont été ajoutées.
**Note**  
Les rubriques FIFO Amazon SNS ne sont pas prises en charge.
+ **(Facultatif)** Pour utiliser une rubrique Amazon SNS chiffrée à l'aide de AWS KMS clés, vous devez accorder à l'utilisateur AWS final des autorisations de messagerie sociale conformément à la politique de [clés existante](#managing-event-destinations-topic-policies). 

**Instance Amazon Connect**
+ Une instance Amazon Connect a été [créée](https://docs.aws.amazon.com/connect/latest/adminguide/tutorial1-set-up-your-instance.html) et [des autorisations](#managing-event-destinations-amazon-connect-policies) ont été ajoutées.

## Ajouter un message et une destination d'événement
<a name="managing-event-destinations-add_steps"></a>

1. Ouvrez la console sociale de messagerie utilisateur AWS final à l'adresse [https://console.aws.amazon.com/social-messaging/](https://console.aws.amazon.com/social-messaging/).

1. Choisissez un **compte professionnel**, puis un WABA.

1. Dans l’onglet **Destination d’événement**, choisissez **Modifier la destination**.

1. Pour activer une destination d'événement, choisissez **Activer**.

1. Pour le **type de destination**, choisissez Amazon SNS ou Amazon Connect

   1. Pour envoyer vos événements vers une destination Amazon SNS, entrez un ARN de rubrique existant dans Topic **ARN**. Par exemple les stratégies IAM, consultez [Politiques IAM pour les rubriques Amazon SNS](#managing-event-destinations-sns-policies).

   1. Pour Amazon Connect

      1. Pour l'**instance Connect**, choisissez une instance dans le menu déroulant.

      1. Pour le **rôle de canal bidirectionnel**, choisissez l'une des options suivantes :

         1. **Choisissez un rôle IAM existant** — Choisissez une politique IAM existante dans le menu déroulant **Rôles IAM existants**. Par exemple les stratégies IAM, consultez [Politiques IAM pour Amazon Connect](#managing-event-destinations-amazon-connect-policies).

         1. **Entrez l'ARN du rôle IAM** : entrez l'ARN de la politique IAM dans **Utiliser l'ARN du rôle IAM existant**. Par exemple les stratégies IAM, consultez [Politiques IAM pour Amazon Connect](#managing-event-destinations-amazon-connect-policies).

1. Sélectionnez **Enregistrer les modifications**.

## Règles relatives aux rubriques Amazon SNS chiffrées
<a name="managing-event-destinations-topic-policies"></a>

Vous pouvez utiliser des rubriques Amazon SNS chiffrées à l'aide de AWS KMS clés pour un niveau de sécurité supplémentaire. Cette sécurité accrue peut être utile si votre application gère des données privées ou sensibles. Pour plus d'informations sur le chiffrement des rubriques Amazon SNS à AWS KMS l'aide de clés, [consultez la section Activer la compatibilité entre les sources d'événements AWS issues des services et les rubriques chiffrées](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#compatibility-with-aws-services) dans le manuel *Amazon Simple Notification Service* Developer Guide.

**Note**  
Les rubriques FIFO Amazon SNS ne sont pas prises en charge.

L'exemple d'instruction utilise les `SourceArn` conditions facultatives mais recommandées pour éviter le problème de confusion des adjoints. Seul le compte propriétaire du réseau social de messagerie de l'utilisateur AWS final y a accès. `SourceAccount` Pour plus d'informations sur le problème des adjoints confus, voir [Le problème des adjoints confus](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html) dans le *[guide de l'utilisateur d'IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)*.

La clé que vous utilisez doit être *symétrique*. Les rubriques Amazon SNS chiffrées ne prennent pas en charge les clés asymétriques AWS KMS .

La politique clé doit être modifiée pour permettre à l'utilisateur AWS final Messaging Social d'utiliser la clé. Suivez les instructions de la [section Modification d'une politique clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html), dans le *guide du AWS Key Management Service développeur*, pour ajouter les autorisations suivantes à la politique clé existante :

```
{
    "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}:*"
        }
     }
}
```

## Politiques IAM pour les rubriques Amazon SNS
<a name="managing-event-destinations-sns-policies"></a>

Pour utiliser un rôle IAM existant ou pour créer un nouveau rôle, associez la politique suivante à ce rôle afin que AWS End User Messaging Social puisse l'assumer. Pour plus d'informations sur la façon de modifier la relation de confiance d'un rôle, consultez la section [Modification d'un rôle](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html) dans le [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html).

Voici la **politique d'autorisation** pour le rôle IAM. La politique d'autorisation autorise la publication sur des rubriques Amazon SNS.

Dans la politique d'autorisation IAM suivante, apportez les modifications suivantes :
+ *\$1PARTITION\$1*Remplacez-la par la AWS partition dans laquelle vous utilisez AWS End User Messaging Social.
+ Remplacez *\$1REGION\$1* par Région AWS celui dans lequel vous utilisez AWS End User Messaging Social.
+ *\$1ACCOUNT\$1*Remplacez-le par l'identifiant unique de votre Compte AWS.
+ *\$1TOPIC\$1NAME\$1*Remplacez-les par les rubriques Amazon SNS qui recevront des messages.

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

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

Si vous souhaitez que AWS End User Messaging Social utilise un rôle IAM existant ou si vous créez un nouveau rôle, associez les politiques suivantes à ce rôle afin que AWS End User Messaging Social puisse l'assumer. Pour plus d'informations sur la façon de modifier une relation de confiance existante d'un rôle, consultez la section [Modification d'un rôle](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html) dans le [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html). Ce rôle est utilisé à la fois pour envoyer des événements et pour importer des numéros de téléphone depuis AWS End User Messaging Social vers Amazon Connect.

Pour créer de nouvelles politiques IAM, procédez comme suit :

1. Créez une nouvelle **politique d'autorisation** en suivant les instructions de la section [Création de politiques à l'aide de l'éditeur JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) du guide de l'utilisateur IAM.

   1. À l'étape 5, utilisez la **politique d'autorisation** du rôle IAM pour autoriser la publication sur 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. Créez une nouvelle **politique de confiance** en suivant les instructions de la section [Création d'un rôle à l'aide de politiques de confiance personnalisées](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) du Guide de l'utilisateur IAM.

   1. À l'étape 4, utilisez la **politique de confiance** pour le rôle IAM.

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

****  

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

------

   1. À l'étape 10, ajoutez la **politique d'autorisation** que vous avez créée à l'étape précédente.

## Étapes suivantes
<a name="managing-event-destinations_next_steps"></a>

Une fois que vous avez configuré votre rubrique Amazon SNS, vous devez y abonner un point de terminaison. Le point de terminaison commencera à recevoir les messages publiés sur le sujet associé. Pour plus d'informations sur l'abonnement à une rubrique, consultez la section [Abonnement à une rubrique Amazon SNS](https://docs.aws.amazon.com//sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) dans le manuel du développeur Amazon *SNS*.

# Format des messages et des événements dans AWS End User Messaging Social
<a name="managing-event-destination-dlrs"></a>

L'objet JSON d'un événement contient l'en-tête de l' AWS événement et la charge utile WhatsApp JSON. Pour obtenir la liste de la charge utile et des valeurs des WhatsApp notifications JSON, consultez la section [Référence de charge utile des notifications Webhooks](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) et l'[état des messages](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status) dans le manuel *WhatsApp Business Platform Cloud* API Reference.

## AWS En-tête de l'événement social de messagerie à l'utilisateur final
<a name="managing-event-destination-dlrs_body"></a>

L'objet JSON d'un événement contient l'en-tête de l' AWS événement et le code WhatsApp JSON. L'en-tête contient les AWS identifiants ainsi que ceux ARNs de votre compte WhatsApp professionnel (WABA) et de votre numéro de téléphone.

```
{
  "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
}
```

Dans l'exemple d'événement précédent :
+ *1234567890abcde*est l'identifiant WABA de Meta.
+ *abcde1234567890*est l'identifiant du numéro de téléphone de Meta.
+ *fb2594b8a7974770b128a409e2example*est l'identifiant du compte WhatsApp professionnel (WABA).
+ *976c72a700aac43eaf573ae050example*est l'identifiant du numéro de téléphone.

## Exemple de WhatsApp JSON pour recevoir un message
<a name="managing-event-destination-dlrs-example-receive-text"></a>

Ce qui suit montre l'enregistrement d'un événement pour un message entrant provenant de WhatsApp. Le JSON reçu WhatsApp dans le `whatsAppWebhookEntry` est reçu sous forme de chaîne JSON et peut être converti en JSON. Pour obtenir la liste des champs et leur signification, consultez la référence de [charge utile des notifications Webhooks dans la référence](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) de l'*API WhatsApp Business Platform Cloud*.

```
{
  "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"
}
```

Vous pouvez utiliser un outil, tel que [jq](https://jqlang.org/), pour convertir la chaîne JSON en JSON. Ce qui suit est `whatsAppWebhookEntry` au format JSON :

```
{
  "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"
    }
  ]
}
```

## Exemple de WhatsApp JSON pour recevoir un message multimédia
<a name="managing-event-destination-dlrs-example-receive-media"></a>

Ce qui suit montre l'enregistrement d'un événement pour un message multimédia entrant. Pour récupérer le fichier multimédia, utilisez la commande GetWhatsAppMessageMedia API. Pour une liste des champs et leur signification, voir [Webhooks Notification Payload](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) 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 état du message
<a name="managing-event-destinations-status"></a>

Lorsque vous envoyez un message, vous recevez des mises à jour de statut concernant le message. Vous devez activer la journalisation des événements pour recevoir ces notifications, voir[Destinations des messages et des événements dans AWS End User Messaging SocialDestinations des messages et des événements](managing-event-destinations.md).

## Statuts des messages
<a name="managing-event-destinations-status_body"></a>

Le tableau suivant contient les statuts possibles des messages.


****  

| Nom du statut | Description | 
| --- | --- | 
| accepté | Le message a été accepté WhatsApp pour traitement. | 
| deleted | Le client a supprimé le message, et vous devez également le supprimer s'il a été téléchargé sur votre serveur. | 
| livré | Le message a bien été envoyé au client. | 
| failed | Le message n'a pas pu être envoyé. | 
| Les nouvelles tentatives du message sont épuisées, le message est supprimé. | Le message n'a pas pu être transféré WhatsApp dans le délai de 180 minutes et a été supprimé. | 
| lire | Le client a lu le message. Ce statut n'est envoyé que si le client a activé la lecture des reçus. | 
| envoyé | Le message a été envoyé mais est toujours en transit. | 
| warning | Le message contient un article qui n'est pas disponible ou n'existe pas. | 

## Ressources supplémentaires
<a name="managing-event-destinations-status_additional_resources"></a>

Pour plus d'informations, consultez la section [État des messages](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status) dans le *WhatsApp manuel Business Platform Cloud API Reference*.