Rispondere ai comandi dell'app Google Chat

Questa pagina spiega come configurare e rispondere ai comandi come app Google Chat.

I comandi aiutano gli utenti a scoprire e utilizzare le funzionalità chiave di un'app Chat. Solo le app Chat possono visualizzare il contenuto di un comando. Ad esempio, se un utente invia un messaggio con un comando con slash, il messaggio è visibile solo all'utente e all'app Chat.

Per decidere se creare comandi e capire come progettare le interazioni degli utenti, consulta Definisci tutti i percorsi degli utenti.

Tipi di comandi dell'app Chat

Puoi creare comandi per l'app di chat come comandi slash o comandi rapidi. Per scoprire e utilizzare ogni tipo di comando, gli utenti procedono nel seguente modo:
  1. Comandi slash: gli utenti inviano comandi come messaggi digitando una barra (/) e poi un testo predefinito, ad esempio /about. Le app di chat possono anche richiedere il testo dell'argomento per il comando slash. Ad esempio, il comando slash /search può richiedere un testo dell'argomento utilizzato per una query di ricerca.
  2. Comandi rapidi:gli utenti utilizzano i comandi aprendo il menu dall'area di risposta di un messaggio di Chat. Per utilizzare un comando, fai clic su Aggiungi e seleziona un comando dal menu.
Le seguenti immagini mostrano come gli utenti scoprono un menu di comandi slash e comandi rapidi:
  • Un utente scopre i comandi slash.
    Figura 1. Gli utenti scoprono e utilizzano i comandi slash digitando una barra / nell'area di risposta seguita dal nome del comando.
  • Un utente visualizza i comandi rapidi dal menu.
    Figura 2. Gli utenti scoprono e utilizzano i comandi rapidi dal menu nell'area di risposta di un messaggio di Chat.

Prerequisiti

Node.js

Un'app Google Chat che riceve e risponde agli eventi di interazione. Per creare un'app Chat interattiva utilizzando un servizio HTTP, completa questa guida rapida.

Apps Script

Un'app Google Chat che riceve e risponde agli eventi di interazione. Per creare un'app di chat interattiva in Apps Script, completa questa guida rapida.

Python

Un'app Google Chat che riceve e risponde agli eventi di interazione. Per creare un'app Chat interattiva utilizzando un servizio HTTP, completa questa guida rapida.

Java

Un'app Google Chat che riceve e risponde agli eventi di interazione. Per creare un'app Chat interattiva utilizzando un servizio HTTP, completa questa guida rapida.

Configurare il comando

Questa sezione spiega come completare i seguenti passaggi per configurare il comando:

  1. Crea un nome e una descrizione per il comando.
  2. Configura il comando nella console Google Cloud.

Assegna un nome e una descrizione al comando

Il nome di un comando è ciò che gli utenti digitano o selezionano per richiamare l'app Chat. Sotto il nome viene visualizzata anche una breve descrizione per invitare gli utenti a utilizzare il comando:

Nome e descrizione del comando slash
Figura 3: il nome e la descrizione di un comando slash.

Quando scegli un nome e una descrizione per il tuo comando, tieni presente i seguenti suggerimenti:

Per assegnare un nome a un comando:

  • Utilizza parole o frasi brevi, descrittive e strategiche per rendere i comandi chiari per l'utente. Ad esempio, invece del nome Create a reminder, utilizza Remind me.
  • Valuta la possibilità di utilizzare un nome univoco o comune per il comando. Se il comando descrive un'interazione o una funzionalità tipica, puoi utilizzare un nome comune che gli utenti riconoscono e si aspettano, ad esempio Settings o Feedback. In caso contrario, prova a utilizzare nomi di comandi univoci, perché se il nome del comando è lo stesso per altre app di chat, l'utente deve filtrare i comandi simili per trovare e utilizzare il tuo.

Per descrivere un comando:

  • Mantieni la descrizione breve e chiara, in modo che gli utenti sappiano cosa aspettarsi quando utilizzano il comando.
  • Comunica agli utenti se esistono requisiti di formattazione per il comando. Ad esempio, se crei un comando slash che richiede un testo dell'argomento, imposta la descrizione su un valore simile a Remind me to do [something] at [time].
  • Comunica agli utenti se l'app Chat risponde a tutti nello spazio o privatamente all'utente che richiama il comando. Ad esempio, per il comando rapido About, potresti descriverlo come Learn about this app (Only visible to you).

Configurare il comando nella console Google Cloud

Per creare un comando slash o rapido, devi specificare le informazioni sul comando nella configurazione dell'app di chat per l'API Google Chat.

Per configurare un comando nell'API Google Chat, completa i seguenti passaggi:

  1. Nella console Google Cloud, fai clic su Menu > API e servizi > API e servizi abilitati > API Google Chat

    Vai alla pagina dell'API Google Chat

  2. Fai clic su Configurazione.

  3. Nella sezione Comandi, fai clic su Aggiungi un comando.

  4. Inserisci un ID comando, una descrizione, un tipo di comando e un nome per il comando:

    • ID comando:un numero da 1 a 1000 che la tua app di chat utilizza per riconoscere il comando e restituire una risposta.
    • Descrizione:il testo che descrive cosa fa il comando. Le descrizioni possono contenere fino a 50 caratteri e possono includere caratteri speciali.
    • Tipo di comando:seleziona Comando rapido o Comando slash.
    • Specifica un nome per il comando rapido o il comando slash:
      • Nome comando rapido:il nome visualizzato che gli utenti selezionano dal menu per richiamare il comando. Può contenere fino a 50 caratteri e includere caratteri speciali. Ad esempio, Remind me.
      • Nome del comando slash:il testo che gli utenti digitano per richiamare il comando in un messaggio. Deve iniziare con una barra, contenere solo testo e può contenere fino a 50 caratteri. Ad esempio, /remindMe.
  5. (Facoltativo) Se vuoi che l'app Chat risponda al comando con una finestra di dialogo, seleziona la casella di controllo Apri una finestra di dialogo.

  6. Fai clic su Salva.

Il comando è ora configurato per l'app Chat.

Rispondere a un comando

Quando gli utenti utilizzano un comando, l'app di chat riceve un evento di interazione. Il payload dell'evento contiene metadati con dettagli sul comando richiamato (inclusi l'ID e il tipo di comando), in modo da poter restituire una risposta appropriata.

Messaggio privato per l'app
  Cymbal Labs Chat. Il messaggio indica che
  l'app Chat è stata creata da Cymbal Labs e condivide un link
  alla documentazione e un link per contattare il team di assistenza.
Un'app di chat risponde privatamente al comando slash /help per spiegare come ricevere assistenza.

Per rispondere a ogni tipo di comando, devi gestire diversi tipi di eventi e oggetti di metadati nel payload dell'evento:

Tipo di comando Tipo di evento Metadati del comando
Comando slash MESSAGE message.slashCommand o message.annotation.slashCommand
Comando rapido APP_COMMAND appCommandMetadata

Per scoprire come rispondere a un comando con un messaggio, consulta le sezioni seguenti.

Rispondere a un comando slash

Il seguente codice mostra un esempio di app di chat che risponde al comando slash /about. L'app Chat gestisce gli eventi di interazione MESSAGE, rileva se l'evento di interazione contiene l'ID comando corrispondente e restituisce un messaggio privato:

Node.js

node/avatar-app/index.js
/**
 * Handles slash and quick commands.
 *
 * @param {Object} event - The Google Chat event.
 * @param {Object} res - The HTTP response object.
 */
function handleAppCommands(event, res) {
  const {appCommandId, appCommandType} = event.appCommandMetadata;

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
    case HELP_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
def handle_app_commands(event: Mapping[str, Any]) -> Mapping[str, Any]:
    """Handles slash and quick commands.

    Args:
        Mapping[str, Any] event: The Google Chat event.

    Returns:
        Mapping[str, Any]: the response
    """
    app_command_id = event["appCommandMetadata"]["appCommandId"]

    if app_command_id == ABOUT_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    elif app_command_id == HELP_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    return {}

Java

java/avatar-app/src/main/java/AvatarApp.java
/**
 * Handles slash and quick commands.
 *
 * @param event    The Google Chat event.
 * @param response The HTTP response object.
 */
private void handleAppCommands(JsonObject event, HttpResponse response) throws Exception {
  int appCommandId = event.getAsJsonObject("appCommandMetadata").get("appCommandId").getAsInt();

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      Message aboutMessage = new Message();
      aboutMessage.setText("The Avatar app replies to Google Chat messages.");
      aboutMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(aboutMessage));
      return;
    case HELP_COMMAND_ID:
      Message helpMessage = new Message();
      helpMessage.setText("The Avatar app replies to Google Chat messages.");
      helpMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(helpMessage));
      return;
  }
}

Sostituisci ABOUT_COMMAND_ID con l'ID comando che hai specificato quando hai configurato il comando nella console Google Cloud.

Rispondere a un comando rapido

Il seguente codice mostra un esempio di app di chat che risponde al comando rapido Aiuto. L'app Chat gestisce gli eventi di interazione APP_COMMAND, rileva se l'evento di interazione contiene l'ID comando corrispondente e restituisce un messaggio privato:

Node.js

node/avatar-app/index.js
/**
 * Handles slash and quick commands.
 *
 * @param {Object} event - The Google Chat event.
 * @param {Object} res - The HTTP response object.
 */
function handleAppCommands(event, res) {
  const {appCommandId, appCommandType} = event.appCommandMetadata;

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
    case HELP_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
/**
 * Handles the APP_COMMAND event type. This function is triggered when a user
 * interacts with a quick command within the Google Chat app.  It responds
 * based on the command ID.
 *
 * @param {Object} event The event object from Google Chat, containing details
 *     about the app command interaction.  It includes information like the
 *     command ID and the user who triggered it.
 */
function onAppCommand(event) {
  // Executes the quick command logic based on its ID.
  // Command IDs are set in the Google Chat API configuration.
  switch (event.appCommandMetadata.appCommandId) {
    case HELP_COMMAND_ID:
      return {
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      };
  }
}

Python

python/avatar-app/main.py
def handle_app_commands(event: Mapping[str, Any]) -> Mapping[str, Any]:
    """Handles slash and quick commands.

    Args:
        Mapping[str, Any] event: The Google Chat event.

    Returns:
        Mapping[str, Any]: the response
    """
    app_command_id = event["appCommandMetadata"]["appCommandId"]

    if app_command_id == ABOUT_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    elif app_command_id == HELP_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    return {}

Java

java/avatar-app/src/main/java/AvatarApp.java
/**
 * Handles slash and quick commands.
 *
 * @param event    The Google Chat event.
 * @param response The HTTP response object.
 */
private void handleAppCommands(JsonObject event, HttpResponse response) throws Exception {
  int appCommandId = event.getAsJsonObject("appCommandMetadata").get("appCommandId").getAsInt();

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      Message aboutMessage = new Message();
      aboutMessage.setText("The Avatar app replies to Google Chat messages.");
      aboutMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(aboutMessage));
      return;
    case HELP_COMMAND_ID:
      Message helpMessage = new Message();
      helpMessage.setText("The Avatar app replies to Google Chat messages.");
      helpMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(helpMessage));
      return;
  }
}

Sostituisci HELP_COMMAND_ID con l'ID comando che hai specificato quando hai configurato il comando nella console Google Cloud.

Testare il comando

Per testare il comando e il codice, vedi Testare le funzionalità interattive per le app Google Chat.

Per scoprire come testare e utilizzare il comando nell'interfaccia utente di Chat, consulta l'articolo Utilizzare le app in Google Chat nella documentazione del Centro assistenza Google Chat.