Responder a comandos de barra como um app do Google Chat

Esta página explica como configurar e responder a comandos de barra para seu app Google Chat.

Um comando de barra é uma forma comum de os usuários invocarem e interagirem com uma App Chat. Os comandos de barra também ajudam os usuários a descobrir e usar os principais recursos de um app do Chat.

Para usar um comando de barra, os usuários digitam uma barra (/) e, em seguida, um comando de texto curto: como /about para saber informações sobre o app do Chat. Os usuários podem descobrir os comandos de barra disponíveis digitando uma O Google Chat, que mostra uma janela listando os comandos disponíveis para o App do 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ê deve 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, a mensagem é visível para o usuário e o app do Chat. Se você configurou seu app do Chat para ser adicionado a espaços com várias pessoas, considere responder ao comando de barra de forma privada, para manter a interação privada entre o usuário e o App Chat.

Por exemplo, para saber mais sobre um app do Chat descobrir em um espaço, os usuários podem usar comandos como /about ou /help. Para evitar notificar todas as outras pessoas no espaço, o O app do Chat pode responder de forma particular com informações sobre como usar o app Chat e receber suporte.

Pré-requisitos

Node.js

Um app do Google Chat com recursos interativos ativados. Para criar um interativo do Chat que usa 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 interativo com o app Chat no Apps Script, conclua este guia de início rápido.

Python

Um app do Google Chat com recursos interativos ativados. Para criar um interativo do Chat que usa 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 uma barra comando:

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

Nomeie seu 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 abaixo do nome, para solicitar mais informações aos usuários 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 seu comando de barra, considere o seguintes recomendações:

  • Para nomear o comando de barra:

    • Use palavras ou frases curtas, descritivas e acionáveis para tornar 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 na primeira palavra e colocando em maiúscula a primeira uma carta de palavras adicionais. Por exemplo, em vez de /updatecontact: use /updateContact.
    • Considere usar um nome exclusivo ou comum para o comando. Se seu comando descreve uma interação ou recurso típico, é possível usar nome comum que os usuários reconhecem e esperam, como /settingsou /feedback. Caso contrário, tente usar nomes de comandos exclusivos, porque se os seus nome do comando for o mesmo em outros apps de chat, o usuário precisará filtrar por comandos semelhantes para encontrar e usar o seu.
  • Para descrever seu comando de barra:

    • Mantenha a descrição breve e clara para que os usuários saibam o que esperar quando invocam o comando.
    • Informe aos usuários se há requisitos de formatação para o comando. Por exemplo, se você criar um comando /remindMe que requer argumento defina a descrição como Remind me to do [something] at [time].
    • Informe aos usuários se o app do Chat responder a todos no espaço ou de forma particular para o usuário que invoca o comando. Por exemplo, para o comando de barra /about, é possível descrevê-lo como Learn about this app (Only visible to you). Para responder de forma privada a uma , consulte a seção Responder com uma mensagem privada.

Configurar o comando de barra na API Google Chat

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

Para configurar um comando de barra na API Google Chat, faça o seguinte: etapas:

  1. No console do Google Cloud, clique em Menu > APIs e Serviços > APIs ativadas e Serviços > 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. Digite um nome, um ID de comando 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 uma barra, conter apenas texto e pode 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 seu O app do Chat usa para reconhecer o comando de barra e retornam uma resposta.
  5. Opcional: se você quiser que o app do Chat responda a o comando com uma caixa de diálogo, selecione o 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 do Chat que contém um comando de barra, seu app do Chat recebe um evento de interação MESSAGE. O payload do evento contém o slashCommand e slashCommandMetadata objetos. 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
  App Chat da Cymbal Labs. A mensagem diz que
  O app do Chat foi criado pela Cymbal Labs e compartilha um link
  a documentação e um link para entrar em contato com a equipe de suporte.
Um app do Chat responde de modo particular ao O comando de barra /help explica como acessar o suporte.

O código a seguir mostra um exemplo de app do Chat que responde ao comando de barra /help processando MESSAGE evento de interação e detectando se a mensagem contém o ID de comando correspondente. Se a mensagem contiver o ID do comando, o app do Chat retornará uma mensagem privada que explica como conseguir ajuda:

Node.js

/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {!Object} req Request sent from Google Chat app
* @param {!Object} res Response to send back
*
* @return {!Object} respond to slash command
*/
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    return res.send('Hello! This function is meant to be used in Google Chat app.');
  }

  const event = req.body;

  // Checks for the presence of event.message.slashCommand.
  // If the slash command is "/help", responds with a private text message.
  if (event.message.slashCommand) {
    switch (event.message.slashCommand.commandId) {
      case 'ID': // The ID for your slash command
        return res.json({
          privateMessageViewer: event.user, // Optional. Responds privately to the slash command.
          text: 'This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>.'
        });
    }
  }

  // If the Chat app doesn't detect a slash command, it responds
  // with a private text message
  return res.json({
    privateMessageViewer: event.user,
    text: 'Try a slash command.'
  });
};

Apps Script

/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {Object} event the event object from Google Chat
*/
function onMessage(event) {
  if (event.message.slashCommand) {
    switch (event.message.slashCommand.commandId) {
      case ID: // The ID for your slash command
        return {
          "privateMessageViewer": event.user, // Optional. Responds privately to the slash command.
          "text": "This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>."
        };
    }
  }
  else {
    return { "text": "Try a slash command.", "privateMessageViewer": event.user };
  }
}

Python

from typing import Any, Mapping

import flask
import functions_framework

@functions_framework.http
def main(req: flask.Request) -> Mapping[str, Any]:
  """Responds to a MESSAGE event in Google Chat.

  Args:
      req (flask.Request): the event object from Chat API.

  Returns:
      Mapping[str, Any]: open a Dialog in response to a card's button click.
  """
  if req.method == 'GET':
    return 'Hello! This function must be called from Google Chat.'

  request = req.get_json(silent=True)

  # Checks for the presence of event.message.slashCommand.
  # If the slash command is "/help", responds with a private text message.
  if request.get('message', {}).get('slashCommand'):
    command_id = request.get('message', {}).get('slashCommand').get('commandId')
    if command_id == 'ID': # The ID for your slash command
      return {
          'privateMessageViewer': request.get('user'),
          'text': (
              'This Chat app was created by Cymbal Labs. To get help with this'
              ' app, <https://cymbalgroup.com/docs|see our documentation> or'
              ' <https://cymbalgroup.com/support|contact our support team>.'
          ),
      }

  return {
      'privateMessageViewer': request.get('user'), # Optional. Responds privately to the slash command.
      'text': 'Try a slash command.',
  }

Substitua ID pelo ID de comando que você especificado quando você configurou o comando de barra na API Chat. Para testar o código, consulte Teste recursos interativos nos apps do Google Chat.