

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

# Ative o streaming de mensagens de bate-papo em tempo real no Connect Customer
<a name="chat-message-streaming"></a>

O Connect Customer Chat fornece [APIs](https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html) que permitem que você assine um stream de mensagens de bate-papo em tempo real. Usando essas APIs, você pode: 
+ Transmitir mensagens de chat em tempo real quando um novo contato de chat for criado.
+ Estenda a funcionalidade atual do Connect Customer Chat para oferecer suporte a casos de uso, como criar integrações com soluções de SMS e aplicativos de mensagens de terceiros, habilitar notificações push móveis e criar painéis de análise para monitorar e rastrear a atividade de mensagens de bate-papo. 

**nota**  
Esta página descreve como assinar um endpoint do SNS para streaming em tempo real de mensagens de bate-papo no Connect Customer. Se você estiver tentando habilitar o streaming de mensagens para interações conversacionais de IA no Connect Customer, consulte[Ativar o streaming de mensagens para AI-powered bate-papo](message-streaming-ai-chat.md).

## Como as APIs de transmissão de mensagens funcionam
<a name="how-chat-message-streaming-apis-work"></a>

As [APIs de streaming de mensagens do Connect Customer](https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html) são acionadas quando determinados eventos ocorrem em um contato do Connect Customer Chat. Por exemplo, quando um cliente envia uma nova mensagem de chat, o evento envia uma [carga útil](sns-payload.md) para um endpoint específico contendo dados sobre a mensagem que acabou de ser enviada. As mensagens são publicadas usando o [Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) (Amazon SNS) para um endpoint específico. 

Este tópico descreve como configurar o streaming de mensagens em tempo real usando o Connect Customer e o Amazon SNS. As etapas são: 

1. Use o console do Amazon SNS para criar um novo tópico padrão do SNS e configurar as mensagens.

1. Chame a [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API para iniciar o contato no chat.

1. Chame a [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html)API para iniciar o streaming de mensagens. 

1. Chame a [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)API para criar a conexão do participante.

## Etapa 1: Criar um tópico padrão do SNS
<a name="step1-chat-streaming"></a>

1. Acesse o console do Amazon SNS. 

1. [Crie um tópico do SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) em sua AWS conta. Na seção **Detalhes**, em **Tipo**, escolha **Padrão**, insira um nome para o tópico e escolha **Criar tópico**.
**nota**  
Atualmente, as APIs de transmissão de mensagens oferecem suporte apenas ao SNS padrão para transmissão de mensagens em tempo real. Elas não são compatíveis com [tópicos FIFO (primeiro a entrar, primeiro a sair) do Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html). 

1. Depois de criar o tópico, o nome do recurso da Amazon (ARN) é exibido na seção **Detalhes**. Copie o ARN do tópico para a área de transferência. Você usará o ARN do tópico na próxima etapa e em [Etapa 3: Habilitar a transmissão de mensagens no contato](#step3-chat-streaming). 

   O ARN do tópico é semelhante ao seguinte exemplo: 

   ```
   arn:aws:sns:{{us-east-1}}:{{123456789012}}:{{MyTopic}}                                
   ```

1. Escolha a guia **Política de acesso**, escolha **Editar** e, em seguida, adicione uma política baseada em recursos no tópico do SNS para que o Connect Customer tenha permissão para publicar nele. Veja a seguir um exemplo de política do SNS que você pode copiar e colar no editor JSON e, em seguida, personalizar com seus valores: 

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Principal":{
               "Service":"connect.amazonaws.com"
            },
            "Action":"sns:Publish",
            "Resource":"arn:aws:sns:{{us-east-1}}:{{111122223333}}:{{TopicName}}",
            "Condition":{
               "StringEquals":{
                   "aws:SourceAccount":"{{111122223333}}"
               },
               "ArnEquals":{
               "aws:SourceArn":"arn:aws:connect:{{us-east-1}}:{{111122223333}}:instance/{{InstanceId}}"
               }
            }
         }
      ]
   }
   ```

------
**nota**  
A **Política de acesso** padrão vem com condições aplicadas ao `sourceOwner` como:   

   ```
   "Condition": {
           "StringEquals": {
             "AWS:SourceOwner": "921772911154"
           }
         }
   ```
Remova e substitua por `SourceAccount`, por exemplo:  

   ```
   "Condition":{
               "StringEquals":{
                  "aws:SourceAccount":"YOUR_AWS_ACCOUNT_ID"
               },
               "ArnEquals":{
                  "aws:SourceArn":"YOUR_CONNECT_INSTANCE_ARN"
               }
            }
   ```
Isso evita um problema de [substituto confuso entre serviços](cross-service-confused-deputy-prevention.md). 

1. Se você estiver usando criptografia do lado do servidor no SNS, verifique se você tem a permissão `connect.amazonaws.com` habilitada na KMS key. Veja a seguir um exemplo de política:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "key-consolepolicy-3",
       "Statement": [
           {
               "Sid": "Enable IAM User Permissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::{{111122223333}}:root",
                   "Service": "connect.amazonaws.com"
               },
               "Action": "kms:*",
               "Resource": "*"
           },
           {
               "Sid": "Allow access for Key Administrators",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::{{111122223333}}:root",
                   "Service": "connect.amazonaws.com"
               },
               "Action": [
                   "kms:Create*",
                   "kms:Describe*",
                   "kms:Enable*",
                   "kms:List*",
                   "kms:Put*",
                   "kms:Update*",
                   "kms:Revoke*",
                   "kms:Disable*",
                   "kms:Get*",
                   "kms:Delete*",
                   "kms:TagResource",
                   "kms:UntagResource",
                   "kms:ScheduleKeyDeletion",
                   "kms:CancelKeyDeletion"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

## Etapa 2: Iniciar o contato do chat
<a name="step2-chat-streaming"></a>

1. Chame a [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API Connect Customer para iniciar o contato por chat. 

   Para obter informações sobre como criar o cliente SDK para chamar as APIs do Connect Customer, consulte os tópicos a seguir:
   + [Classe AmazonConnectClientBuilder](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/connect/AmazonConnectClientBuilder.html) 
   + [Criar clientes de serviço](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html) 

1. Acompanhe a [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)resposta `ContactId` e a `ParticipantToken` partir dela, pois esses atributos de resposta são usados para chamar outras APIs de bate-papo necessárias para habilitar o streaming. Isso é descrito nas próximas etapas.

## Etapa 3: Habilitar a transmissão de mensagens no contato
<a name="step3-chat-streaming"></a>
+ Ligue [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html)para ativar o streaming de mensagens em tempo real para seu tópico do SNS.
  + **Limites**: você pode assinar até dois tópicos do SNS por contato.
  + Ao ligar [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html), você precisará fornecer o Amazon Resource Name (ARN) do tópico do SNS (consulte). [Etapa 1: Criar um tópico padrão do SNS](#step1-chat-streaming)

    Um único ARN de tópico do SNS pode ser usado em Contas da AWS vários, mas deve estar na mesma região da sua instância do Connect Customer. **Por exemplo, se o ARN do seu tópico estiver em us-east-1, sua instância do Connect Customer deverá estar em **us-east-1**.**
  + Para mensagens de bate-papo iniciais que não são recebidas no endpoint de streaming, você pode chamar a [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)API para receber as mensagens iniciais.

## Etapa 4: Criar a conexão do participante
<a name="step4-chat-streaming"></a>
+ Chamada [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)com o `ConnectParticipant` atributo passado como verdadeiro. 
  + Você deve ligar [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)dentro de cinco minutos após criar o bate-papo.
  + Ligar [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)com `ConnectParticipant` set como true só funciona se você habilitou o streaming [Etapa 2: Iniciar o contato do chat](#step2-chat-streaming) e o participante da chamada está`Customer`.
  + Essa etapa (criar a conexão do participante) é opcional se você já se conectou com sucesso ao contato do chat usando `WEBSOCKET`.

## Próximas etapas
<a name="nextsteps-chat-streaming"></a>

Você está pronto para trabalhar com as APIs de transmissão de mensagens.

1. Para verificar se está funcionando, verifique se as mensagens foram publicadas no tópico do SNS que você criou. Você pode fazer isso usando as CloudWatch métricas da Amazon. Para obter instruções, consulte [Tópicos de monitoramento do Amazon SNS usando](https://docs.aws.amazon.com/sns/latest/dg/sns-monitoring-using-cloudwatch.html). CloudWatch 

1. Como o SNS tem [retenção limitada](https://aws.amazon.com/blogs//aws/sns-ttl-control/), recomendamos que você configure o [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/), o [Amazon Kinesis](https://aws.amazon.com/kinesis/) ou outro serviço para reter mensagens. 

1. [StopContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StopContactStreaming.html)O uso é opcional e não obrigatório se os bate-papos estiverem sendo [desconectados](disconnect-hang-up.md) por meio de um fluxo de contato ou se o cliente desconectar o bate-papo. No entanto, `StopContactStreaming` oferece a opção de interromper a transmissão de mensagens no tópico do SNS, mesmo se o chat estiver ativo e contínuo.