Esta página descreve como o app de chat pode abrir caixas de diálogo para responder aos usuários.
Caixas de diálogo são interfaces em janelas baseadas em cards que são abertas em um espaço ou uma mensagem do Chat. A caixa de diálogo e o conteúdo dela só ficam visíveis para o usuário que a abriu.
Os apps de chat podem usar caixas de diálogo para solicitar e coletar informações dos usuários, incluindo formulários de várias etapas. Para saber mais sobre como criar entradas de formulário, consulte Coletar e processar informações dos usuários.
Pré-requisitos
Node.js
Um app do Google Chat com recursos interativos ativados. Para criar um app do Chat interativo usando um serviço HTTP, conclua este guia de início rápido.
Python
Um app do Google Chat com recursos interativos ativados. Para criar um app do Chat interativo usando um serviço HTTP, conclua este guia de início rápido.
Java
Um app do Google Chat com recursos interativos ativados. Para criar um app de chat interativo usando um serviço HTTP, conclua este guia de início rápido.
Apps Script
Um app do Google Chat com recursos interativos ativados. Para criar um app do Chat interativo no Apps Script, conclua este guia de início rápido.
Abrir uma caixa de diálogo
Nesta seção, explicamos como responder e configurar uma caixa de diálogo fazendo o seguinte:
- Acionar a solicitação da caixa de diálogo de uma interação do usuário.
- Processe a solicitação retornando e abrindo uma caixa de diálogo.
- Depois que os usuários enviarem as informações, processe o envio fechando ou retornando outra caixa de diálogo.
Acionar uma solicitação de caixa de diálogo
Um app do Chat só pode abrir caixas de diálogo para responder a uma interação do usuário, como um comando de barra ou o clique de um botão em uma mensagem em um card.
Para responder aos usuários com uma caixa de diálogo, um app de chat precisa criar uma interação que aciona a solicitação de caixa de diálogo, como esta:
- Responda a um comando de barra. Para acionar a solicitação de um comando de barra, marque a caixa de seleção Abre uma caixa de diálogo ao configurar o comando.
- Responda a um clique em um botão em uma
mensagem,
seja como parte de um card ou na parte de baixo da mensagem. Para acionar a
solicitação de um botão em uma mensagem, defina a
ação
onClick
do botão definindo ointeraction
comoOPEN_DIALOG
. - Responder a um clique de botão na página inicial de um app do Chat. Para saber mais sobre como abrir caixas de diálogo em páginas iniciais, consulte Criar uma página inicial para seu app do Google Chat.
O exemplo de código a seguir mostra como acionar uma solicitação de caixa de diálogo por um botão em
uma mensagem de card. Para abrir a caixa de diálogo, o campo
button.interaction
está definido como OPEN_DIALOG
:
Node.js
Python
Java
Apps Script
Este exemplo envia uma mensagem de cartão retornando o card JSON. Você também pode usar o serviço de card do Apps Script.
Abrir a caixa de diálogo inicial
Quando um usuário aciona uma solicitação de caixa de diálogo, o app Chat
recebe um evento de interação, representado como um tipo
event
na
API Chat. Se a interação acionar uma solicitação de caixa de diálogo, o campo
dialogEventType
do evento será definido como REQUEST_DIALOG
.
Para abrir uma caixa de diálogo, o app de chat pode responder à
solicitação retornando um objeto
actionResponse
com o type
definido como DIALOG
e o
objeto
Message
. Para especificar o conteúdo da caixa de diálogo, inclua os seguintes
objetos:
- Um objeto
actionResponse
comtype
definido comoDIALOG
. - Um objeto
dialogAction
. O campobody
contém os elementos da interface do usuário (IU) a serem exibidos no card, incluindo um ou maissections
de widgets. Para coletar informações dos usuários, especifique widgets de entrada de formulário e um widget de botão. Para saber mais sobre como projetar entradas de formulário, consulte Coletar e processar informações dos usuários.
O exemplo de código a seguir mostra como um app do Chat retorna uma resposta que abre uma caixa de diálogo:
Node.js
Python
Java
Apps Script
Este exemplo envia uma mensagem de cartão retornando o card JSON. Você também pode usar o serviço de card do Apps Script.
Processar o envio da caixa de diálogo
Quando os usuários clicam em um botão que envia uma caixa de diálogo, o
app de chat recebe
um evento de interação CARD_CLICKED
,
em que dialogEventType
é SUBMIT_DIALOG
.
O app de chat precisa processar o evento de interação fazendo uma das seguintes ações:
- Retorne outra caixa de diálogo para preencher outro card ou formulário.
- Feche a caixa de diálogo depois de validar os dados enviados pelo usuário e, opcionalmente, envie uma mensagem de confirmação.
Opcional: retornar outra caixa de diálogo
Depois que os usuários enviam a caixa de diálogo inicial, os apps de chat podem retornar uma ou mais caixas de diálogo adicionais para ajudar os usuários a revisar informações antes de enviar, preencher formulários de várias etapas ou preencher o conteúdo do formulário de forma dinâmica.
Para processar os dados inseridos pelos usuários, o app de chat
usa o
objeto
event.common.formInputs
. Para saber mais sobre como recuperar valores de widgets de entrada, consulte
Coletar e processar informações dos usuários.
Para acompanhar todos os dados que os usuários inserem na caixa de diálogo inicial, adicione parâmetros ao botão que abre a próxima caixa de diálogo. Para mais detalhes, consulte Transferir dados para outro cartão.
Neste exemplo, um app do Chat abre uma caixa de diálogo inicial que leva a uma segunda caixa de diálogo de confirmação antes do envio:
Node.js
Python
Java
Apps Script
Este exemplo envia uma mensagem de cartão retornando o card JSON. Também é possível usar o serviço de cards do Apps Script.
Fechar a caixa de diálogo
Quando os usuários clicam em um botão em uma caixa de diálogo, o app do Chat executa a ação associada e fornece ao objeto de evento as seguintes informações:
eventType
éCARD_CLICKED
.dialogEventType
éSUBMIT_DIALOG
.
O app de chat precisa retornar um objeto
ActionResponse
com o type
definido como DIALOG
e dialogAction
.
Opcional: mostrar uma notificação
Ao fechar a caixa de diálogo, você também pode exibir uma notificação de texto.
O app do Chat pode responder com uma notificação de êxito ou erro
retornando uma
ActionResponse
com actionStatus
definido.
O exemplo a seguir verifica se os parâmetros são válidos e fecha a caixa de diálogo com uma notificação de texto, dependendo do resultado:
Node.js
Python
Java
Apps Script
Neste exemplo, uma mensagem de cartão é enviada retornando o JSON do cartão. Também é possível usar o serviço de cards do Apps Script.
Para detalhes sobre como transmitir parâmetros entre caixas de diálogo, consulte Transferir dados para outro cartão.
Opcional: enviar uma mensagem de confirmação
Ao fechar a caixa de diálogo, você também pode enviar uma nova mensagem ou atualizar uma existente.
Para enviar uma nova mensagem, retorne um objeto
ActionResponse
com o type
definido como NEW_MESSAGE
. O exemplo abaixo fecha a
caixa de diálogo com notificação de texto e mensagem de texto de confirmação:
Node.js
Python
Java
Apps Script
Este exemplo envia uma mensagem de cartão retornando o card JSON. Você também pode usar o serviço de card do Apps Script.
Para atualizar uma mensagem, retorne um objeto actionResponse
que contenha a
mensagem atualizada e defina o type
como uma das seguintes opções:
UPDATE_MESSAGE
: atualiza a mensagem que acionou a solicitação de caixa de diálogo.UPDATE_USER_MESSAGE_CARDS
: atualiza o card usando uma visualização de link.
Resolver problemas
Quando um app ou card do Google Chat retorna um erro, a interface do Chat mostra uma mensagem dizendo "Algo deu errado". ou "Não foi possível processar sua solicitação". Às vezes, a interface do Chat não exibe nenhuma mensagem de erro, mas o app ou card produz um resultado inesperado. Por exemplo, uma mensagem de card pode não aparecer.
Embora uma mensagem de erro possa não ser exibida na interface do Chat, mensagens de erro descritivas e dados de registro estão disponíveis para ajudar você a corrigir erros quando a geração de registros de erros para apps do Chat está ativada. Se precisar de ajuda para visualizar, depurar e corrigir erros, consulte Resolver problemas e corrigir erros do Google Chat.
Temas relacionados
- Veja o exemplo do Gerenciador de contatos, que é um app do Chat que usa caixas de diálogo para coletar dados de contato.
- Abrir caixas de diálogo na página inicial do app Google Chat.
- Configurar e responder a comandos de barra
- Processar as informações inseridas pelos usuários