Esta página descreve como um app do Google Chat pode abrir caixas de diálogo para mostrar interfaces do usuário (IUs) e responder aos usuários.
As caixas de diálogo são interfaces baseadas em cards que são abertas em um espaço ou 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 do Chat podem usar caixas de diálogo para solicitar e coletar informações dos usuários do Chat, incluindo formulários de várias etapas. Para mais detalhes sobre como criar entradas de formulário, consulte Coletar e processar informações dos usuários.
Pré-requisitos
HTTP
Um complemento do Google Workspace que estende o Google Chat. Para criar um, conclua o guia de início rápido do HTTP.
Apps Script
Um complemento do Google Workspace que estende o Google Chat. Para criar um, conclua o guia de início rápido do Apps Script.
Abrir uma caixa de diálogo
Esta seção explica como responder e configurar uma caixa de diálogo fazendo o seguinte:
- Acionar a solicitação de caixa de diálogo de uma interação do usuário.
- Processar a solicitação retornando e abrindo uma caixa de diálogo.
- Depois que os usuários enviarem informações, processe o envio fechando a caixa de diálogo ou retornando outra.
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 ou um clique de botão em uma mensagem em um card.
Para responder aos usuários com uma caixa de diálogo, um app do Chat precisa criar uma interação que acione a solicitação de caixa de diálogo, como a seguinte:
- Responder a um comando. Para acionar a solicitação de um comando, marque a caixa de seleção Abre uma caixa de diálogo ao configurar o comando.
- Responder a um clique de botão em uma
mensagem,
como parte de um card ou na parte de baixo da mensagem. Para acionar a
solicitação de um botão em uma mensagem, configure a
ação
onClickdo botão definindointeractioncomoOPEN_DIALOG.
/addContact. A mensagem também inclui um botão em que os usuários podem clicar para acionar o comando.
O exemplo de código a seguir mostra como acionar uma solicitação de caixa de diálogo de um botão em uma mensagem de card. Para abrir a caixa de diálogo, defina o campo
onClick.action.interaction
do botão como OPEN_DIALOG:
Node.js
Substitua FUNCTION_URL pelo endpoint HTTP que processa os cliques de botão.
Python
Substitua FUNCTION_URL pelo endpoint HTTP que processa os cliques de botão.
Java
Substitua FUNCTION_URL pelo endpoint HTTP que processa os cliques de botão.
Apps Script
Este exemplo envia uma mensagem de card retornando o JSON do card. Também é possível 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 do Chat
recebe um
objeto de evento com um payload
que especifica um dialogEventType objeto como REQUEST_DIALOG.
Para abrir uma caixa de diálogo, o app do Chat pode responder à
solicitação retornando um
RenderActions
objeto com a navegação pushCard para mostrar um card. O card precisa conter
elementos de interface do usuário (IU), incluindo uma ou mais
sections[]
de widgets. Para coletar informações dos usuários, é possível especificar widgets de entrada de formulário e um widget de botão. Para saber mais sobre como criar 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
Substitua FUNCTION_URL pelo endpoint HTTP que processa os cliques de botão.
Python
Substitua FUNCTION_URL pelo endpoint HTTP que processa os cliques de botão.
Java
Substitua FUNCTION_URL pelo endpoint HTTP que processa os cliques de botão.
Apps Script
Este exemplo envia uma mensagem de card retornando o JSON do card. Também é possível 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 do Chat recebe um objeto de evento com um
ButtonClickedPayload
objeto. No payload, o dialogEventType é definido como SUBMIT_DIALOG. Para
entender como coletar e processar as informações na caixa de diálogo, consulte
Coletar e processar informações dos usuários do Google Chat.
O app do Chat precisa responder ao objeto de evento fazendo uma das seguintes ações:
- Retornar outra caixa de diálogo para preencher outro card ou formulário.
- Fechar a caixa de diálogo depois de validar os dados enviados pelo usuário e, opcionalmente, enviar 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 do Chat podem retornar uma ou mais caixas de diálogo adicionais para ajudar os usuários a revisar as 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 do Chat
processa os dados no
commonEventObject.formInputs
objeto do evento. 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 inseridos pelos usuários 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 card.
Neste exemplo, um app do Chat abre uma caixa de diálogo inicial que leva a uma segunda caixa de diálogo para confirmação antes do envio:
Node.js
Substitua FUNCTION_URL pelo endpoint HTTP que processa os cliques de botão.
Python
Substitua FUNCTION_URL pelo endpoint HTTP que processa os cliques de botão.
Java
Substitua FUNCTION_URL pelo endpoint HTTP que processa os cliques de botão.
Apps Script
Este exemplo envia uma mensagem de card retornando o JSON do card. Também é possível usar o serviço de card do Apps Script.
Fechar a caixa de diálogo
Quando os usuários clicam em um botão de envio em uma caixa de diálogo, o app do Chat executa a ação associada e fornece o objeto de evento com buttonClickedPayload definido como o seguinte:
isDialogEventétrue.dialogEventTypeéSUBMIT_DIALOG.
O app do Chat precisa retornar um
RenderActions
objeto com
EndNavigation
definido como CLOSE_DIALOG.
Opcional: mostrar uma notificação temporária
Ao fechar a caixa de diálogo, também é possível mostrar uma notificação de texto temporária para o usuário que está interagindo com o app.
Para exibir uma notificação, retorne o
RenderActions
objeto com o campo notification definido.
O exemplo a seguir fecha a caixa de diálogo com uma notificação de texto:
Node.js
Python
Java
Apps Script
Este exemplo envia uma mensagem de card retornando o JSON do card. Também é possível usar o serviço de card do Apps Script.
Para detalhes sobre como transmitir parâmetros entre caixas de diálogo, consulte Transferir dados para outro card.
Opcional: enviar uma mensagem de confirmação do Chat
Ao fechar a caixa de diálogo, também é possível enviar uma nova mensagem do Chat ou atualizar uma existente.
Para enviar uma nova mensagem, retorne um
DataActions
objeto com o campo
CreateMessageAction definido com a nova mensagem. Por exemplo, para fechar a caixa de diálogo e enviar uma mensagem de texto, retorne o seguinte:
O exemplo a seguir fecha a caixa de diálogo enviando uma nova mensagem:
Node.js
Python
Java
Apps Script
Este exemplo envia uma mensagem de card retornando o JSON do card. Também é possível usar o serviço de card do Apps Script.
Para atualizar uma mensagem depois que o usuário envia uma caixa de diálogo, retorne um objeto DataActions que contenha uma das seguintes ações:
UpdateMessageAction: Atualiza uma mensagem enviada pelo app do Chat, como a mensagem da qual o usuário solicitou a caixa de diálogo.UpdateInlinePreviewAction: atualiza o card de 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 mostra nenhuma mensagem de erro, mas o app ou card do Chat produz um resultado inesperado. Por exemplo, uma mensagem de card pode não aparecer.
Embora uma mensagem de erro não seja mostrada na interface do Chat, mensagens de erro descritivas e dados de registro estão disponíveis para ajudar a corrigir erros quando o registro de erros para apps do Chat está ativado. Para receber ajuda para visualizar, depurar e corrigir erros, consulte Resolver e corrigir erros do Google Chat.