

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Destinos de mensagens e eventos no AWS End User Messaging Social
<a name="managing-event-destinations"></a>

O destino de um evento é um tópico do Amazon SNS ou uma instância do Amazon Connect para a qual os WhatsApp eventos são enviados. Quando você ativa a publicação de eventos, todos os seus eventos de envio e recebimento são enviados para o destino da mensagem e do evento. Use eventos para monitorar, acompanhar e analisar o status das mensagens enviadas e das comunicações recebidas dos clientes.

Cada conta WhatsApp comercial (WABA) pode ter um destino de evento. Todos os eventos de todos os recursos associados ao WABA são registrados no destino do evento. Por exemplo, você pode ter um WABA com três números de telefone associados a ele e todos os eventos desses números de telefone são registrados no destino de um evento.

**Topics**
+ [Adicionar um destino de mensagem e evento ao AWS End User Messaging Social](managing-event-destinations-add.md)
+ [Formato de mensagem e evento no AWS End User Messaging Social](managing-event-destination-dlrs.md)
+ [WhatsApp status da mensagem](managing-event-destinations-status.md)

# Adicionar um destino de mensagem e evento ao AWS End User Messaging Social
<a name="managing-event-destinations-add"></a>

Quando você ativa a publicação de mensagens e eventos, todos os eventos gerados pela sua conta WhatsApp comercial (WABA) são enviados para o tópico do Amazon SNS. Isso inclui eventos para cada número de telefone associado a um WABA. Seu WABA pode ter um tópico do Amazon SNS associado a ele. 

## Pré-requisitos
<a name="managing-event-destinations-add_prerequisite"></a>

Antes de começar, os seguintes pré-requisitos devem ser atendidos para usar um tópico do Amazon SNS ou uma instância do Amazon Connect como destino de mensagens e eventos.

**Tópico do Amazon SNS**
+ Um tópico do Amazon SNS foi [criado](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) e [as permissões foram adicionadas](#managing-event-destinations-sns-policies).
**nota**  
Tópicos FIFO do Amazon SNS são incompatíveis.
+ **(Opcional)** Para usar um tópico do Amazon SNS criptografado usando AWS KMS chaves, você precisa conceder permissões sociais de mensagens de usuário AWS final à política de [chaves existente](#managing-event-destinations-topic-policies). 

**Instância do Amazon Connect**
+ Uma instância do Amazon Connect foi [criada](https://docs.aws.amazon.com/connect/latest/adminguide/tutorial1-set-up-your-instance.html) e [as permissões](#managing-event-destinations-amazon-connect-policies) foram adicionadas.

## Adicione uma mensagem e um destino para o evento
<a name="managing-event-destinations-add_steps"></a>

1. Abra o console social do AWS End User Messaging em [https://console.aws.amazon.com/social-messaging/](https://console.aws.amazon.com/social-messaging/).

1. Escolha **Conta comercial e, em** seguida, escolha uma WABA.

1. Na guia **Destino do evento**, escolha **Editar destino**.

1. Para ativar o destino de um evento, escolha **Habilitar**.

1. Para **Tipo de destino**, escolha Amazon SNS ou Amazon Connect

   1. **Para enviar seus eventos para um destino do Amazon SNS, insira um ARN de tópico existente em ARN de tópico.** Para obter exemplos de políticas do IAM, consulte [Políticas do IAM para tópicos do Amazon SNS](#managing-event-destinations-sns-policies).

   1. Para Amazon Connect

      1. Para **Connect instance**, escolha uma instância no menu suspenso.

      1. Para a **função de canal bidirecional**, escolha uma das seguintes opções:

         1. **Escolha a função existente do IAM** — Escolha uma política existente do IAM no menu suspenso **Funções existentes do IAM**. Para obter exemplos de políticas do IAM, consulte [Políticas do IAM para o Amazon Connect](#managing-event-destinations-amazon-connect-policies).

         1. **Insira o ARN da função do IAM** — Insira o ARN da política do IAM em **Usar o ARN da função do IAM existente**. Para obter exemplos de políticas do IAM, consulte [Políticas do IAM para o Amazon Connect](#managing-event-destinations-amazon-connect-policies).

1. Escolha **Salvar alterações**.

## Políticas de tópicos criptografados do Amazon SNS
<a name="managing-event-destinations-topic-policies"></a>

Você pode usar tópicos do Amazon SNS que são criptografados usando AWS KMS chaves para obter um nível adicional de segurança. Essa segurança adicional pode ser útil se seu aplicativo manipula dados privados ou confidenciais. Para obter mais informações sobre a criptografia de tópicos do Amazon SNS AWS KMS usando chaves, [consulte Habilitar a compatibilidade entre fontes de eventos AWS de serviços e tópicos criptografados](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#compatibility-with-aws-services) no Guia do desenvolvedor do *Amazon Simple Notification Service*.

**nota**  
Tópicos FIFO do Amazon SNS são incompatíveis.

A declaração de exemplo usa as `SourceArn` condições opcionais, mas recomendadas, `SourceAccount` para evitar o confuso problema adjunto, e somente a conta do proprietário do AWS End User Messaging Social tem acesso. Para obter mais informações sobre o problema de confused deputy”, consulte [O problema de “confused deputy”](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html) no *[usuário do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)*.

A chave que você usa deve ser *simétrica*. Tópicos criptografados do Amazon SNS não oferecem suporte a chaves AWS KMS assimétricas.

A política de chaves deve ser modificada para permitir que o AWS End User Messaging Social use a chave. Siga as instruções em [Alteração de uma política de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html), no *Guia do AWS Key Management Service desenvolvedor*, para adicionar as seguintes permissões à política de chaves existente:

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

## Políticas do IAM para tópicos do Amazon SNS
<a name="managing-event-destinations-sns-policies"></a>

Para usar uma função do IAM existente ou criar uma nova função, anexe a política a seguir a essa função para que o AWS End User Messaging Social possa assumi-la. Para obter informações sobre como modificar a relação de confiança de uma função, consulte [Modificando uma função](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html) no [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html).

A seguir está a política de permissões para o perfil do IAM. A política de permissão permite a publicação em tópicos do Amazon SNS.

Na política de permissão do IAM a esse perfil, faça as seguintes alterações:
+ *\$1PARTITION\$1*Substitua pela AWS partição na qual você usa o AWS End User Messaging Social.
+ *\$1REGION\$1*Substitua por Região da AWS aquela em que você usa o AWS End User Messaging Social.
+ *\$1ACCOUNT\$1*Substitua pelo ID exclusivo do seu Conta da AWS.
+ *\$1TOPIC\$1NAME\$1*Substitua pelos tópicos do Amazon SNS que receberão mensagens.

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

## Políticas do IAM para o Amazon Connect
<a name="managing-event-destinations-amazon-connect-policies"></a>

Se você quiser que o AWS End User Messaging Social use uma função existente do IAM ou se você criar uma nova função, anexe as seguintes políticas a essa função para que o AWS End User Messaging Social possa assumi-la. Para obter informações sobre como modificar uma relação de confiança existente de uma função, consulte [Modifying a Role](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_manage.html) no [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html). Essa função é usada tanto para enviar eventos quanto para importar números de telefone do AWS End User Messaging Social para o Amazon Connect.

Para criar novas políticas de IAM, faça o seguinte:

1. Crie uma nova **política de permissão** seguindo as instruções em [Criar políticas usando o editor JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) no Guia do usuário do IAM.

   1. Na etapa 5, use a **política de permissão** para a função do IAM para permitir a publicação no 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. Crie uma nova **política de confiança** seguindo as instruções em [Criar um perfil usando políticas de confiança personalizadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) no Guia do usuário do IAM.

   1. Na etapa 4, use a **política de confiança** para a função do IAM.

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

****  

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

------

   1. Na etapa 10, adicione a **política de permissão** que você criou na etapa anterior.

## Próximas etapas
<a name="managing-event-destinations_next_steps"></a>

Depois de configurar seu tópico do Amazon SNS, você deve inscrever um endpoint para o tópico. O endpoint começará a receber mensagens publicadas no tópico associado. Para obter mais informações sobre a assinatura de um tópico, consulte [Assinatura de um tópico do Amazon SNS no Guia do desenvolvedor](https://docs.aws.amazon.com//sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) do Amazon *SNS*.

# Formato de mensagem e evento no AWS End User Messaging Social
<a name="managing-event-destination-dlrs"></a>

O objeto JSON de um evento contém o cabeçalho do AWS evento e a carga WhatsApp JSON. Para ver uma lista da carga e dos valores da WhatsApp notificação JSON, consulte Referência da carga útil de [notificação de Webhooks e [Status da mensagem](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status) na Referência](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) da API Cloud da *WhatsApp Business* Platform.

## AWS Cabeçalho do evento social de mensagens para o usuário final
<a name="managing-event-destination-dlrs_body"></a>

O objeto JSON de um evento contém o cabeçalho do AWS evento e o WhatsApp JSON. O cabeçalho contém os AWS identificadores ARNs de sua conta WhatsApp comercial (WABA) e número de telefone.

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

No evento de exemplo anterior:
+ *1234567890abcde*é o ID WABA da Meta.
+ *abcde1234567890*é o ID do número de telefone da Meta.
+ *fb2594b8a7974770b128a409e2example*é o ID da conta WhatsApp comercial (WABA).
+ *976c72a700aac43eaf573ae050example*é o ID do número de telefone.

## Exemplo de WhatsApp JSON para receber uma mensagem
<a name="managing-event-destination-dlrs-example-receive-text"></a>

O seguinte mostra o registro do evento de uma mensagem recebida de WhatsApp. O JSON recebido do WhatsApp `whatsAppWebhookEntry` é recebido como uma string JSON e pode ser convertido em JSON. Para ver uma lista dos campos e seus significados, consulte Referência de [carga útil de notificação de webhooks na Referência](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components) da API de *nuvem da WhatsApp Business Platform*.

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

Você pode usar uma ferramenta, como [jq](https://jqlang.org/), para converter a string JSON em JSON. A seguir está o `whatsAppWebhookEntry` formato 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"
    }
  ]
}
```

## Exemplo de WhatsApp JSON para receber uma mensagem de mídia
<a name="managing-event-destination-dlrs-example-receive-media"></a>

O seguinte mostra o registro do evento para uma mensagem de mídia recebida. Para recuperar o arquivo de mídia, use o comando da GetWhatsAppMessageMedia API. Para obter uma lista de campos e seus significados, consulte Referência de carga útil de [notificação de webhooks](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components)

```
{
//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 status da mensagem
<a name="managing-event-destinations-status"></a>

Ao enviar uma mensagem, você recebe atualizações de status sobre a mensagem. Você precisa ativar o registro de eventos para receber essas notificações, consulte[Destinos de mensagens e eventos no AWS End User Messaging SocialDestinos de mensagens e eventos](managing-event-destinations.md).

## Status da mensagem
<a name="managing-event-destinations-status_body"></a>

A tabela a seguir contém os possíveis status das mensagens.


****  

| Nome do status | Description | 
| --- | --- | 
| aceitaram | A mensagem foi aceita WhatsApp para processamento. | 
| deleted | O cliente excluiu a mensagem e você também deve excluir a mensagem se ela tiver sido baixada para o seu servidor. | 
| entregue | A mensagem foi entregue com sucesso ao cliente. | 
| falha | A mensagem falhou ao ser enviada. | 
| As tentativas de mensagem estão esgotadas, descartando a mensagem. | A mensagem não pôde ser entregue WhatsApp dentro do período de repetição de 180 minutos e foi descartada. | 
| leitura | O cliente leu a mensagem. Esse status só é enviado se o cliente tiver os recibos de leitura ativados. | 
| enviado | A mensagem foi enviada, mas ainda está em trânsito. | 
| aviso | A mensagem contém um item que não está disponível ou não existe. | 

## Recursos adicionais do
<a name="managing-event-destinations-status_additional_resources"></a>

Para obter mais informações, consulte [Status da mensagem](https://developers.facebook.com/docs/whatsapp/conversation-types#message-status) na *WhatsApp Business Platform Cloud API Reference*.