Nesta página, explicamos como configurar e responder a comandos como um app do Google Chat.
Os comandos ajudam os usuários a descobrir e usar os principais recursos de um app do Chat. Somente os apps do Chat podem ver o conteúdo de um comando. Por exemplo, se um usuário enviar uma mensagem com um comando de barra, ela só vai ficar visível para ele e para o app do Chat.
Para decidir se você deve criar comandos e entender como projetar interações do usuário, consulte Definir todas as jornadas do usuário.
Tipos de comandos do app Chat
Você pode criar comandos do app Chat como comandos de barra, comandos rápidos ou ações de mensagem. Para usar cada tipo de comando, os usuários podem fazer o seguinte:-
Comandos de barra:os usuários podem selecionar um comando de barra no menu ou digitar uma barra (
/) e um texto predefinido, como/about. Os apps de chat geralmente exigem um texto de argumento para o comando de barra.Crie um comando de barra se o app do Chat exigir mais informações do usuário. Por exemplo, você pode criar um comando de barra chamado
/searchque é executado depois que o usuário insere uma frase para pesquisar, como/search receipts. -
Comandos rápidos:os usuários usam comandos abrindo o menu na área de resposta de uma mensagem de chat. Para usar um comando, clique em Adicionar
e selecione um comando no menu.
Crie um comando rápido se o app do Chat puder responder ao usuário imediatamente, sem esperar por mais informações. Por exemplo, você pode criar um comando rápido chamado Imagem aleatória que responde imediatamente com uma imagem.
-
Ações de mensagem:os usuários passam o cursor sobre uma mensagem e clicam no menu de três pontos. Para usar um comando, eles abrem o menu de três pontos e selecionam uma opção.
Crie uma ação da mensagem se o app Chat puder realizar ações com base no contexto de uma mensagem.
As imagens a seguir mostram como os usuários descobrem o menu de comandos de barra e rápidos e ações de mensagens:
Pré-requisitos
Node.js
Um app do Google Chat que recebe e responde a eventos de interação. Para criar um app interativo do Chat usando um serviço HTTP, conclua este guia de início rápido.
Apps Script
Um app do Google Chat que recebe e responde a eventos de interação. Para criar um app do Chat interativo no Apps Script, conclua este guia de início rápido.
Python
Um app do Google Chat que recebe e responde a eventos de interação. Para criar um app interativo do Chat usando um serviço HTTP, conclua este guia de início rápido.
Java
Um app do Google Chat que recebe e responde a eventos de interação. Para criar um app interativo do Chat usando um serviço HTTP, conclua este guia de início rápido.
Configurar o comando
Nesta seção, explicamos como concluir as seguintes etapas para configurar o comando:
- Crie um nome e uma descrição para o comando.
- Configure o comando no console do Google Cloud.
Nomeie e descreva o comando
O nome de um comando é o que os usuários digitam ou selecionam para invocar o app Chat. Uma breve descrição também aparece abaixo do nome para orientar os usuários sobre como usar o comando:
Ao escolher um nome e uma descrição para seu comando, considere as seguintes recomendações:
Para nomear um comando:
- Use palavras ou frases curtas, descritivas e práticas para deixar os comandos claros para o usuário. Por exemplo, em vez do nome
Create a reminder, useRemind me. - Use um nome exclusivo ou comum para o comando. Se o comando descreve uma
interação ou um recurso típico, use um nome comum que os usuários reconheçam e esperem,
como
SettingsouFeedback. Caso contrário, tente usar nomes de comandos exclusivos. Se o nome do comando for o mesmo de outros apps de chat, o usuário precisará filtrar comandos semelhantes para encontrar e usar o seu.
Para descrever um comando:
- Mantenha a descrição curta e clara para que os usuários saibam o que esperar ao usar o comando.
- Informe aos usuários se há requisitos de formatação para o comando. Por exemplo, se você
criar um comando de barra que exija texto de argumento, defina a descrição como algo como
Remind me to do [something] at [time]. - Informe aos usuários se o app do Chat responde a todos no espaço ou
de forma particular ao usuário que invoca o comando. Por exemplo, para o comando rápido
About, você pode descrever comoLearn about this app (Only visible to you).
Configurar o comando no console do Google Cloud
Para criar um comando de barra, um comando rápido ou uma ação de mensagem, especifique informações sobre o comando ou a ação na configuração do app do Chat para a API Google Chat.
Para configurar um comando na API Google Chat, siga estas etapas:
No console do Google Cloud, clique em Menu > APIs e serviços > APIs e serviços ativados > API Google Chat
Clique em Configuração.
Em Comandos, clique em Adicionar um comando.
Insira um ID, uma descrição, um tipo e um nome para o comando:
- ID do comando:um número de 1 a 1000 que seu app de chat usa para reconhecer o comando e retornar uma resposta.
- Descrição:o texto que descreve o que o comando faz. As descrições podem ter até 50 caracteres e incluir caracteres especiais.
- Tipo de comando:selecione Comando rápido, Comando de barra ou Ação da mensagem.
- Especifique um nome para o comando:
- Nome do comando rápido:o nome de exibição que os usuários selecionam no
menu para invocar o comando. Pode ter até 50 caracteres e incluir caracteres especiais. Por exemplo,
Remind me. - Nome do comando de barra:o texto que os usuários digitam para invocar o comando em uma mensagem. Precisa começar com uma barra, conter apenas texto e ter até 50 caracteres. Por exemplo,
/remindMe. - Nome da ação da mensagem:o nome de exibição que os usuários selecionam no menu para invocar a ação da mensagem. Pode ter até 50 caracteres e incluir caracteres especiais. Por exemplo,
Remind me.
- Nome do comando rápido:o nome de exibição que os usuários selecionam no
menu para invocar o comando. Pode ter até 50 caracteres e incluir caracteres especiais. Por exemplo,
Opcional: Mensagem de notificação de carregamento: uma mensagem de notificação temporária para mostrar ao usuário enquanto a ação da mensagem está sendo executada. Disponível apenas para ações de mensagens que não abrem caixas de diálogo.
Opcional: se você quiser que o app de chat responda ao comando com uma caixa de diálogo, marque a caixa de seleção Abrir uma caixa de diálogo.
Clique em Salvar.
O comando agora está configurado para o app Chat.
Associar comandos do mapa a comandos iniciais
Você pode destacar seus comandos como Comandos iniciais para que os usuários os vejam como chips interativos ao iniciar uma mensagem direta individual vazia com seu app de chat.
Para mapear um comando a um comando inicial:
- Verifique se o comando não exige outros argumentos personalizados. Somente comandos com Nenhum argumento ou Argumentos básicos são compatíveis como comandos iniciais.
- No console do Google Cloud, acesse a página Configuração da API Chat.
- Em Recursos interativos > Comandos iniciais, clique em Adicionar um comando.
- Defina a Classificação (1 a 3) para a ordem de exibição.
- Em Seleção de tipo, escolha prompt de comando e selecione o comando no menu suspenso.
- Clique em Concluído e, depois, em Salvar.
Responder a um comando
Quando os usuários usam um comando, o app Chat recebe um evento de interação. O payload do evento contém metadados com detalhes sobre o comando que foi invocado (incluindo o ID e o tipo do comando), para que você possa retornar uma resposta adequada.
/help para explicar como receber suporte.Para responder a cada tipo de comando, é necessário processar diferentes tipos de eventos e objetos de metadados no payload do evento:
| Tipo de comando | Tipo de evento | Metadados de comando |
|---|---|---|
| Comando de barra | MESSAGE |
message.slashCommand
ou message.annotation.slashCommand |
| Comando rápido | APP_COMMAND |
appCommandMetadata
|
| Mensagem de ação | APP_COMMAND |
appCommandMetadata
|
Para saber como responder a um comando com uma mensagem, consulte as seções a seguir.
Responder a um comando de barra
O código a seguir mostra um exemplo de app de chat que
responde ao comando de barra /about. O app Chat
processa eventos de interação MESSAGE, detecta se o evento de interação
contém o ID do comando correspondente e retorna uma mensagem particular:
Node.js
Apps Script
Python
Java
Substitua ABOUT_COMMAND_ID pelo ID do comando que você
especificou ao configurar o comando no console do Google Cloud.
Responder a um comando rápido
O código a seguir mostra um exemplo de app do Chat que
responde ao comando rápido Ajuda. O app Chat
processa eventos de interação APP_COMMAND, detecta se o evento de interação
contém o ID do comando correspondente e retorna uma mensagem particular:
Node.js
Apps Script
Python
Java
Substitua HELP_COMMAND_ID pelo ID do comando que você
especificou ao configurar o comando no console do Google Cloud.
Responder a uma ação da mensagem
O código a seguir mostra um exemplo de app do Chat que responde à ação da mensagem Me lembre. O app Chat
processa eventos de interação APP_COMMAND, detecta se o evento de interação
contém o ID do comando correspondente e retorna uma mensagem particular:
Node.js
/**
* Responds to an APP_COMMAND interaction event from Google Chat.
*
* @param {Object} event The interaction event from Google Chat.
* @param {Object} res The HTTP response object.
* @return {Object} The JSON response message with a confirmation.
*/
function handleAppCommand(event, res) {
// Collect the command ID and type from the event metadata.
const {appCommandId, appCommandType} = event.appCommandMetadata;
// Use appCommandType to detect message actions.
if (appCommandType === 'MESSAGE_ACTION' &&
appCommandId === REMIND_ME_COMMAND_ID) {
// Message actions can access the context of the message they were
// invoked on, such as the text or sender of that message.
const messageText = event.message.text;
// Return a response that includes details from the original message.
return res.send({
text: `Setting a reminder for this message: "${messageText}"`
});
}
}
Apps Script
/**
* Responds to an APP_COMMAND interaction event in Google Chat.
*
* @param {Object} event The interaction event from Google Chat.
* @return {Object} The JSON response message with a confirmation.
*/
function onAppCommand(event) {
// Collect the command ID and type from the event metadata.
const {appCommandId, appCommandType} = event.appCommandMetadata;
if (appCommandType === 'MESSAGE_ACTION' &&
appCommandId === REMIND_ME_COMMAND_ID) {
// Message actions can access the context of the message they were
// invoked on, such as the text or sender of that message.
const messageText = event.message.text;
// Return a response that includes details from the original message.
return { "text": "Setting a reminder for message: " + messageText };
}
}
Python
def handle_app_command(event):
"""Responds to an APP_COMMAND interaction event from Google Chat.
Args:
event (dict): The interaction event from Google Chat.
Returns:
dict: The JSON response message with a confirmation.
"""
# Collect the command ID and type from the event metadata.
metadata = event.get('appCommandMetadata', {})
if metadata.get('appCommandType') == 'MESSAGE_ACTION' and \
metadata.get('appCommandId') == REMIND_ME_COMMAND_ID:
# Message actions can access the context of the message they were
# invoked on, such as the text or sender of that message.
message_text = event.get('message', {}).get('text')
# Return a response that includes details from the original message.
return {
"text": f'Setting a reminder for message: "{message_text}"'
}
Java
/**
* Responds to an APP_COMMAND interaction event from Google Chat.
*
* @param event The interaction event from Google Chat.
* @param response The HTTP response object.
*/
void handleAppCommand(JsonObject event, HttpResponse response) throws Exception {
// Collect the command ID and type from the event metadata.
JsonObject metadata = event.getAsJsonObject("appCommandMetadata");
String appCommandType = metadata.get("appCommandType").getAsString();
if (appCommandType.equals("MESSAGE_ACTION")) {
int commandId = metadata.get("appCommandId").getAsInt();
if (commandId == REMIND_ME_COMMAND_ID) {
// Message actions can access the context of the message they were
// invoked on, such as the text or sender of that message.
String messageText = event.getAsJsonObject("message").get("text").getAsString();
// Return a response that includes details from the original message.
JsonObject responseMessage = new JsonObject();
responseMessage.addProperty("text", "Setting a reminder for message: " + messageText);
response.getWriter().write(responseMessage.toString());
}
}
}
Substitua REMIND_ME_COMMAND_ID pelo ID do comando que você
especificou ao configurar o comando no console do Google Cloud.
Testar o comando
Para testar o comando e o código, consulte Testar recursos interativos para apps do Google Chat.
Para saber como testar e usar o comando na interface do Chat, consulte Usar apps no Google Chat na documentação de ajuda do Google Chat.
Temas relacionados
- Conferir exemplos do app Chat que usam comandos
- Enviar uma mensagem
- Abrir caixas de diálogo interativas