Questa pagina spiega come configurare i comandi e rispondere a questi ultimi 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 i contenuti di un comando. Ad esempio, se un utente invia un messaggio con un comando slash, il messaggio è visibile solo all'utente e all'app Chat.
Per decidere se creare comandi e per capire come progettare le interazioni degli utenti, consulta Definire tutti i percorsi utente.
Tipi di comandi dell'app Chat
Puoi creare comandi dell'app Chat come comandi slash, comandi rapidi o azioni sui messaggi. Per utilizzare ogni tipo di comando, gli utenti possono:-
Comandi slash: gli utenti possono selezionare un comando slash dal menu o digitare una barra (
/) e poi un testo predefinito, ad esempio/about. In genere, le app Chat richiedono un testo di argomento per il comando slash.Crea un comando slash se la tua app Chat richiede un input aggiuntivo da parte dell'utente. Ad esempio, puoi creare un comando slash chiamato
/searchche viene eseguito dopo che l'utente ha inserito una frase da cercare, ad esempio/search receipts. -
Comandi rapidi: gli utenti utilizzano i comandi aprendo il menu dall'area di risposta di un messaggio di chat. Per utilizzare un comando, fanno clic su Aggiungi
e selezionano un comando dal menu.
Crea un comando rapido se la tua app Chat può rispondere immediatamente all'utente senza attendere input aggiuntivi. Ad esempio, puoi creare un comando rapido chiamato Immagine casuale che risponde immediatamente con un'immagine.
-
Azioni sui messaggi: ( Anteprima per gli sviluppatori) gli utenti utilizzano le azioni sui messaggi passando il mouse sopra un messaggio e facendo clic sul menu con tre puntini. Per utilizzare un comando, aprono il menu con tre puntini e selezionano un comando dal menu.
Crea un'azione sui messaggi se la tua app Chat può eseguire azioni based on the context of a message.
Le seguenti immagini mostrano come gli utenti scoprono il menu per i comandi slash e rapidi e le azioni sui messaggi:
Prerequisiti
HTTP
Un componente aggiuntivo di Google Workspace che estende Google Chat. Per crearne uno, completa la guida rapida HTTP.
Apps Script
Un componente aggiuntivo di Google Workspace che estende Google Chat. Per crearne uno, completa la guida rapida di Apps Script.
Configurare il comando
Questa sezione spiega come completare i seguenti passaggi per configurare un comando:
- Crea un nome e una descrizione per il comando.
- Configura il comando nella console Google Cloud.
Assegnare un nome e descrivere il 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 ulteriormente gli utenti a utilizzare il comando:
Quando scegli un nome e una descrizione per il comando, tieni presente i seguenti suggerimenti:
Per assegnare un nome a un comando:
- Utilizza parole o frasi brevi, descrittive e che invitano all'azione per rendere i comandi chiari all'
utente. Ad esempio, anziché il nome
Create a reminder, utilizzaRemind 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
SettingsoFeedback. In caso contrario, prova a utilizzare nomi di comandi univoci perché se il nome del comando è lo stesso per altre app 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.
- Informa gli utenti se sono presenti requisiti di formattazione per il comando. Ad esempio, se crei un comando slash che richiede un testo di argomento, imposta la descrizione su un valore simile a
Remind me to do [something] at [time]. - Informa gli 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 comeLearn about this app (Only visible to you).
Configurare il comando nella console Google Cloud
Per creare un comando slash, un comando rapido o un'azione sui messaggi, devi specificare le informazioni sul comando o sull'azione nella configurazione dell'app Chat per l'API Google Chat.
Per configurare un comando nell'API Google Chat, completa i seguenti passaggi:
Nella console Google Cloud, fai clic su Menu > API e servizi > API e servizi abilitati > API Google Chat
Fai clic su Configurazione.
In Impostazioni di connessione, vai a Trigger e specifica i dettagli dell'endpoint. Devi utilizzare questo trigger nella sezione seguente per rispondere al comando.
- URL endpoint HTTP: qui puoi specificare un URL endpoint HTTP comune. In alternativa, per utilizzare endpoint HTTP diversi per trigger diversi, specifica l'endpoint direttamente nel campo Comando app.
- Apps Script: inserisci l'ID deployment di Apps Script. Per impostazione predefinita, viene richiamata la funzione
onAppCommand. Per utilizzare una funzione Apps Script diversa, specifica il nome della funzione personalizzata nel campo Comando app.
In Comandi, fai clic su Aggiungi un comando.
Inserisci le seguenti informazioni sul comando:
- ID comando: un numero compreso tra 1 e 1000 che l'app Chat utilizza per riconoscere il comando e restituire una risposta.
- Descrizione: il testo che descrive come utilizzare e formattare il comando. Le descrizioni possono contenere fino a 50 caratteri.
- Tipo di comando: seleziona Comando rapido, Comando slash o Azione sui messaggi.
- Specifica un nome per il comando:
- 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 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. - Nome azione sui messaggi:
( Anteprima per gli sviluppatori)
Il nome visualizzato che gli utenti selezionano dal
menu per richiamare l'azione sui messaggi. Può contenere fino a 50 caratteri e includere caratteri speciali. Ad esempio,
Remind me.
- 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,
(Facoltativo) Messaggio di notifica di caricamento: ( Anteprima per gli sviluppatori) Un messaggio di notifica toast da mostrare all'utente durante l'esecuzione dell'azione sui messaggi. Disponibile solo per le azioni sui messaggi che non aprono finestre di dialogo.
(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.
Fai clic su Salva.
Il comando è ora configurato per l'app Chat.
Rispondere a un comando
Quando gli utenti utilizzano un comando, l'app Chat
riceve un oggetto evento.
Il payload dell'evento contiene un
appCommandPayload
oggetto con i dettagli del comando richiamato (inclusi l'ID
comando e il tipo di comando), in modo che tu possa restituire una risposta appropriata.
L'oggetto evento viene inviato all'endpoint HTTP o alla funzione Apps Script
specificata quando hai configurato il trigger Comando app.
/help per spiegare come ricevere assistenza.Il seguente codice mostra un esempio di un'app Chat che risponde al comando slash /about con un messaggio di testo. Per rispondere ai comandi slash, l'app Chat gestisce gli oggetti evento da un trigger Comando app. Quando il payload di un oggetto evento contiene un ID comando slash, l'app Chat restituisce l'azione DataActions
con un oggetto createMessageAction:
Node.js
Python
Java
Apps Script
Per utilizzare questo esempio di codice, sostituisci ABOUT_COMMAND_ID con l'
ID comando specificato durante la
configurazione del comando nell'API Chat.
Rispondere a un'azione sui messaggi
Il seguente codice mostra un esempio di un'app Chat che risponde all'azione sui messaggi Ricordami con un messaggio di testo. Per rispondere alle azioni sui messaggi, l'app Chat gestisce gli oggetti evento da un trigger Comando app. Quando il payload di un oggetto evento contiene un
ID comando azione sui messaggi, l'app Chat restituisce l'azione
DataActions con un createMessageAction
oggetto:
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 onAppCommand(event, res) {
// Collect the command ID and type from the event metadata.
const {appCommandId, appCommandType} =
event.chat.appCommandPayload.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.chat.appCommandPayload.message.text;
// Return a response that includes details from the original message.
return res.json({
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": {
"text": `Setting a reminder for message: "${messageText}"`
}
}
}
}
});
}
}
Python
def on_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.
payload = event.get('chat', {}).get('appCommandPayload', {})
metadata = payload.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 = payload.get('message', {}).get('text')
# Return a response that includes details from the original message.
return {
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": {
"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 onAppCommand(JsonObject event, HttpResponse response) throws Exception {
// Collect the command ID and type from the event metadata.
JsonObject payload = event.getAsJsonObject("chat").getAsJsonObject("appCommandPayload");
JsonObject metadata = payload.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 = payload.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);
JsonObject createMessageAction = new JsonObject();
createMessageAction.add("message", responseMessage);
JsonObject chatDataAction = new JsonObject();
chatDataAction.add("createMessageAction", createMessageAction);
JsonObject hostAppDataAction = new JsonObject();
hostAppDataAction.add("chatDataAction", chatDataAction);
JsonObject finalResponse = new JsonObject();
finalResponse.add("hostAppDataAction", hostAppDataAction);
response.getWriter().write(finalResponse.toString());
}
}
}
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.chat.appCommandPayload.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.chat.appCommandPayload.message.text;
// Return a response that includes details from the original message.
return CardService.newChatResponseBuilder()
.setText("Setting a reminder for message: " + messageText)
.build();
}
}
Per utilizzare questo esempio di codice, sostituisci REMIND_ME_COMMAND_ID con l'
ID comando specificato durante la
configurazione del comando nell'API Chat.
Testare il comando
Per testare il comando e il codice, consulta Testare le funzionalità interattive per le app Google Chat.
Per scoprire come testare e utilizzare il comando nell'interfaccia utente di Chat, consulta Utilizzare le app in Google Chat nella documentazione della Guida di Google Chat.
Argomenti correlati
- Visualizzare esempi di app Chat che utilizzano i comandi
- Invia un messaggio
- Aprire finestre di dialogo interattive