Responder a comandos de barra como um app do Google Chat

Nesta página, explicamos como configurar e responder a comandos de barra no app Google Chat.

Um comando de barra é uma forma comum de invocar e interagir com um app de chat. Esses comandos também ajudam os usuários a descobrir e usar os principais recursos de um app de chat.

Para usar um comando de barra, os usuários digitam uma barra (/) e um comando de texto curto, como /about, para receber informações sobre o app Chat. Os usuários podem descobrir os comandos de barra disponíveis digitando uma barra no Google Chat, que exibe uma janela com a lista de comandos disponíveis para o app Chat:

Janela de comando de barra
Figura 1: a janela que aparece quando os usuários digitam uma barra no Google Chat.

Para decidir se você precisa configurar comandos de barra e entender como projetar interações do usuário, consulte Definir todas as jornadas do usuário.

Comandos de barra com respostas particulares

Quando um usuário envia uma mensagem que contém um comando de barra, ela só fica visível para o usuário e o app do Chat. Se você configurou o app do Chat para ser adicionado a espaços com várias pessoas, considere responder ao comando de barra particularmente para manter a interação privada entre o usuário e o app do Chat.

Por exemplo, para saber mais sobre um app de chat que eles descobriram em um espaço, os usuários podem usar comandos como /about ou /help. Para evitar notificações a todos os outros participantes do espaço, o app de chat pode responder de forma privada com informações sobre como usar o app e receber suporte.

Pré-requisitos

Node.js

Um app do Google Chat que tenha 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 que tenha recursos interativos ativados. 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 tenha 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 que tenha recursos interativos ativados. Para criar um app do Chat interativo usando um serviço HTTP, conclua este guia de início rápido.

Configurar um comando de barra

Esta seção explica como concluir as etapas a seguir para configurar um comando de barra oblíqua:

  1. Crie um nome para o comando de barra.
  2. Configure o comando de barra na API Google Chat.

Nomear o comando de barra

O nome de um comando de barra é o que os usuários digitam em uma mensagem do Chat para invocar o app do Chat. Uma breve descrição também é exibida abaixo do nome para solicitar mais informações sobre como usar o comando:

Nome e descrição do comando de barra
Figura 2: o nome e a descrição de um comando de barra.

Ao escolher um nome e uma descrição para o comando de barra, considere as seguintes recomendações:

  • Para nomear o comando de barra:

    • Use palavras ou frases curtas, descritivas e práticas para tornar os comandos claros e simples para o usuário. Por exemplo, em vez de dizer /createAReminder, use /remindMe.
    • Se o comando tiver mais de uma palavra, ajude os usuários a ler o comando usando todas as letras minúsculas para a primeira palavra e, em seguida, capitalizando a primeira letra das outras palavras. Por exemplo, em vez de /updatecontact, use /updateContact.
    • Considere usar um nome exclusivo ou comum para o comando. Se o comando descrever uma interação ou recurso típico, use um nome comum que os usuários reconheçam e esperem, como /settings ou /feedback. Caso contrário, tente usar nomes de comandos exclusivos, porque, se o nome do comando for o mesmo de outros apps de chat, o usuário terá que filtrar comandos semelhantes para encontrar e usar o seu.
  • Para descrever seu comando de barra:

    • Mantenha a descrição curta e clara para que os usuários saibam o que esperar ao invocar o comando.
    • Informe aos usuários se há requisitos de formatação para o comando. Por exemplo, se você criar um comando /remindMe que exija texto de argumento, defina a descrição como Remind me to do [something] at [time].
    • Informe aos usuários se o app Chat responde a todos no espaço ou de forma privada ao usuário que invoca o comando. Por exemplo, para o comando de barra /about, você pode descrever como Learn about this app (Only visible to you).

Configurar o comando de barra na API Google Chat

Para criar um comando de barra, você precisa especificar informações sobre ele na configuração do app de chat para a API Google Chat.

Para configurar um comando de barra na API Google Chat, siga estas etapas:

  1. No console do Google Cloud, clique em Menu > APIs e serviços > APIs e serviços ativados > API Google Chat

    Acessar a página da API Google Chat

  2. Clique em Configuração.

  3. Em Comandos de barra, clique em Adicionar um comando de barra.

  4. Insira um nome, um ID e uma descrição para o comando:

    1. Nome:o nome de exibição do comando e o que os usuários digitam para invocar seu app. Precisa começar com um caractere de barra e conter apenas texto, podendo ter até 50 caracteres.
    2. Descrição:o texto que descreve como usar e formatar o comando. As descrições podem ter até 50 caracteres.
    3. ID do comando:um número de 1 a 1.000 que o app do Chat usa para reconhecer o comando de barra e retornar uma resposta.
  5. Opcional: se você quiser que o app do Chat responda ao comando com uma caixa de diálogo, marque a caixa de seleção Abrir uma caixa de diálogo.

  6. Clique em Salvar.

O comando de barra agora está configurado para o app do Chat.

Responder a um comando de barra

Quando os usuários criam uma mensagem de chat que contém um comando de barra, o app Chat recebe um evento de interação MESSAGE. O payload do evento contém os objetos slashCommand e slashCommandMetadata. Esses objetos contêm detalhes sobre o comando usado na mensagem (incluindo o ID do comando), para que você possa retornar uma resposta adequada.

Mensagem particular para o
  app Cymbal Labs Chat. A mensagem informa que o
  app de chat foi criado pela Cymbal Labs e compartilha um link
  para a documentação e um link para entrar em contato com a equipe de suporte.
Um app do Chat responde de forma privada ao comando de barra /help para explicar como receber suporte.

O código a seguir mostra um exemplo de um app de chat que responde ao comando de barra /about processando eventos de interação MESSAGE e detectando se a mensagem contém o ID de comando correspondente. Se a mensagem contiver o ID do comando, o app Chat vai retornar uma mensagem particular:

Node.js

node/avatar-app/index.js
// Checks for the presence of a slash command in the message.
if (event.message.slashCommand) {
  // Executes the slash command logic based on its ID.
  // Slash command IDs are set in the Google Chat API configuration.
  switch (event.message.slashCommand.commandId) {
    case ABOUT_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
  }
}

Apps Script

apps-script/avatar-app/avatar-app.gs
// Checks for the presence of a slash command in the message.
if (event.message.slashCommand) {
  // Executes the slash command logic based on its ID.
  // Slash command IDs are set in the Google Chat API configuration.
  switch (event.message.slashCommand.commandId) {
    case ABOUT_COMMAND_ID:
      return {
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      };
  }
}

Python

python/avatar-app/main.py (em inglês)
# Checks for the presence of a slash command in the message.
if "slashCommand" in request_json["message"]:
  # Executes the slash command logic based on its ID.
  # Slash command IDs are set in the Google Chat API configuration.
  if request_json["message"]["slashCommand"]["commandId"] == ABOUT_COMMAND_ID:
    return {
      "privateMessageViewer": request_json["user"],
      "text": 'The Avatar app replies to Google Chat messages.'
    }

Java

java/avatar-app/src/main/java/App.java
// Checks for the presence of a slash command in the message.
if (body.getAsJsonObject("message").has("slashCommand")) {
  // Executes the slash command logic based on its ID.
  // Slash command IDs are set in the Google Chat API configuration.
  JsonObject slashCommand = body.getAsJsonObject("message").getAsJsonObject("slashCommand");
  switch (slashCommand.get("commandId").getAsString()) {
    case ABOUT_COMMAND_ID:
      Message aboutMessage = new Message();
      aboutMessage.setText("The Avatar app replies to Google Chat messages.");
      aboutMessage.setPrivateMessageViewer(new User()
        .setName(body.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(aboutMessage));
      return;
  }
}

Defina ABOUT_COMMAND_ID com o ID de comando que você especificou ao configurar o comando de barra na API Chat. Para testar esse código, consulte Testar recursos interativos em apps do Google Chat.