Cette page explique comment configurer des commandes et y répondre en tant qu'application Google Chat.
Les commandes aident les utilisateurs à découvrir et à utiliser les fonctionnalités clés d'une application Chat. Seules les applications Chat peuvent voir le contenu d'une commande. Par exemple, si un utilisateur envoie un message avec une commande à barre oblique, le message n'est visible que par l'utilisateur et l'application Chat.
Pour déterminer si vous devez créer des commandes et comprendre comment concevoir des interactions utilisateur , consultez Définir tous les parcours utilisateur.
Types de commandes d'application Chat
Vous pouvez créer des commandes d'application Chat sous forme de commandes à barre oblique, de commandes rapides ou d'actions sur les messages. Pour utiliser chaque type de commande, les utilisateurs peuvent procéder comme suit :-
Commandes à barre oblique : les utilisateurs peuvent sélectionner une commande à barre oblique dans le menu ou saisir une barre oblique (
/) suivie d'un texte prédéfini, tel que/about. Les applications Chat nécessitent généralement un texte d'argument pour la commande à barre oblique.Créez une commande à barre oblique si votre application Chat nécessite une entrée supplémentaire de l'utilisateur. Par exemple, vous pouvez créer une commande à barre oblique appelée
/searchqui s'exécute après que l'utilisateur a saisi une expression à rechercher, comme/search receipts. -
Commandes rapides : les utilisateurs utilisent des commandes en ouvrant le menu dans la zone de réponse d'un message Chat. Pour utiliser une commande, ils cliquent sur Ajouter
et sélectionnent une commande dans le menu.
Créez une commande rapide si votre application Chat peut répondre immédiatement à l'utilisateur, sans attendre d'entrée supplémentaire. Par exemple, vous pouvez créer une commande rapide appelée Image aléatoire qui répond immédiatement avec une image.
-
Actions sur les messages ( Preview développeur) les utilisateurs utilisent des actions sur les messages en plaçant le curseur sur un message et en cliquant sur le menu à trois points. Pour utiliser une commande, ils ouvrent le menu à trois points et sélectionnent une commande dans le menu.
Créez une action sur les messages si votre application Chat peut effectuer des actions based on the context of a message.
Les images suivantes montrent comment les utilisateurs découvrent le menu des commandes à barre oblique et rapides, ainsi que les actions sur les messages :
Prérequis
HTTP
Module complémentaire Google Workspace qui étend Google Chat. Pour en créer un, suivez le guide de démarrage rapide HTTP.
Apps Script
Module complémentaire Google Workspace qui étend Google Chat. Pour en créer un, suivez le guide de démarrage rapide Apps Script.
Configurer la commande
Cette section explique comment procéder comme suit pour configurer une commande :
- Créez un nom et une description pour la commande.
- Configurez la commande dans la console Google Cloud.
Nommer et décrire la commande
Le nom d'une commande est ce que les utilisateurs saisissent ou sélectionnent pour appeler l'application Chat. Une brève description s'affiche également sous le nom pour inciter les utilisateurs à utiliser la commande :
Lorsque vous choisissez un nom et une description pour votre commande, tenez compte des recommandations suivantes :
Pour nommer une commande :
- Utilisez des mots ou des expressions courts, descriptifs et exploitables pour que les commandes soient claires pour l'
utilisateur. Par exemple, au lieu du nom
Create a reminder, utilisezRemind me. - Envisagez d'utiliser un nom unique ou commun pour votre commande. Si votre commande décrit une
interaction ou une fonctionnalité typique, vous pouvez utiliser un nom commun que les utilisateurs reconnaissent et attendent,
tel que
SettingsouFeedback. Sinon, essayez d'utiliser des noms de commande uniques. En effet, si le nom de votre commande est le même que celui d'autres applications Chat, l'utilisateur devra filtrer les commandes similaires pour trouver et utiliser la vôtre.
Pour décrire une commande :
- Veillez à ce que la description soit courte et claire afin que les utilisateurs sachent à quoi s'attendre lorsqu'ils utilisent la commande.
- Indiquez aux utilisateurs si la commande est soumise à des exigences de mise en forme. Par exemple, si vous
créez une commande à barre oblique qui nécessite un texte d'argument, définissez la description sur quelque chose comme
Remind me to do [something] at [time]. - Indiquez aux utilisateurs si l'application Chat répond à tous les membres de l'espace ou
en privé à l'utilisateur qui appelle la commande. Par exemple, pour la commande rapide
About, vous pouvez la décrire comme suit :Learn about this app (Only visible to you).
Configurer la commande dans la console Google Cloud
Pour créer une commande à barre oblique, une commande rapide ou une action sur les messages, vous spécifiez des informations sur la commande ou l'action dans la configuration de votre application Chat pour l'API Google Chat.
Pour configurer une commande dans l'API Google Chat, procédez comme suit :
Dans la console Google Cloud, cliquez sur Menu > API et services > API et services activés > API Google Chat
Cliquez sur Configuration.
Sous Paramètres de connexion, accédez à Déclencheurs et spécifiez les détails de votre point de terminaison. Vous devez utiliser ce déclencheur dans la section suivante pour répondre à la commande.
- URL du point de terminaison HTTP : vous pouvez spécifier une URL de point de terminaison HTTP commune ici. Vous pouvez également spécifier le point de terminaison directement dans le champ Commande d'application pour utiliser différents points de terminaison HTTP pour différents déclencheurs.
- Apps Script : saisissez l'ID de déploiement Apps Script. Par défaut, la fonction
onAppCommandest appelée. Pour utiliser une autre fonction Apps Script, spécifiez le nom de la fonction personnalisée dans le champ Commande d'application.
Sous Commandes, cliquez sur Ajouter une commande.
Saisissez les informations suivantes sur la commande :
- ID de commande : nombre compris entre 1 et 1 000 que votre application Chat utilise pour reconnaître la commande et renvoyer une réponse.
- Description : texte décrivant comment utiliser et mettre en forme la commande. Les descriptions peuvent comporter jusqu'à 50 caractères.
- Type de commande : sélectionnez Commande rapide, Commande à barre oblique ou Action sur les messages.
- Spécifiez un nom pour la commande :
- Nom de la commande rapide : nom à afficher que les utilisateurs sélectionnent dans le menu pour appeler la commande. Peut comporter jusqu'à 50 caractères et inclure des caractères spéciaux. Par exemple,
Remind me. - Nom de la commande à barre oblique : texte que les utilisateurs saisissent pour appeler la commande dans un message. Doit commencer par une barre oblique, ne contenir que du texte et comporter jusqu'à 50 caractères. Par exemple,
/remindMe. - Nom de l'action sur les messages
( Preview développeur)
nom à afficher que les utilisateurs sélectionnent dans le
menu pour appeler l'action sur les messages. Peut comporter jusqu'à 50 caractères et inclure des caractères spéciaux. Par exemple,
Remind me.
- Nom de la commande rapide : nom à afficher que les utilisateurs sélectionnent dans le menu pour appeler la commande. Peut comporter jusqu'à 50 caractères et inclure des caractères spéciaux. Par exemple,
Facultatif : Message de notification de chargement: ( Preview développeur) message de notification toast à afficher à l'utilisateur pendant l'exécution de l'action sur les messages. Disponible uniquement pour les actions sur les messages qui n'ouvrent pas de boîtes de dialogue.
Facultatif : si vous souhaitez que votre application Chat réponde à la commande avec une boîte de dialogue, cochez la case Ouvrir une boîte de dialogue.
Cliquez sur Enregistrer.
La commande est maintenant configurée pour l'application Chat.
Répondre à une commande
Lorsque les utilisateurs utilisent une commande, votre application Chat
reçoit un objet d'événement.
La charge utile de l'événement contient un
appCommandPayload
objet avec des détails sur la commande appelée (y compris l'ID
et le type de commande), afin que vous puissiez renvoyer une réponse appropriée.
L'objet d'événement est envoyé au point de terminaison HTTP ou à la fonction Apps Script
que vous avez spécifiés lors de la configuration du déclencheur Commande d'application.
/help pour expliquer comment obtenir de l'aide.Le code suivant montre un exemple d'application Chat qui répond à la commande à barre oblique /about avec un message texte. Pour répondre aux commandes à barre oblique, l'application Chat gère les objets d'événement à partir d'un déclencheur Commande d'application. Lorsque la charge utile d'un objet d'événement contient un ID de commande à barre oblique, l'application Chat renvoie l'action DataActions
avec un objet createMessageAction :
Node.js
Python
Java
Apps Script
Pour utiliser cet exemple de code, remplacez ABOUT_COMMAND_ID par l'
ID de commande que vous avez spécifié lors de la
configuration de la commande dans l'API Chat.
Répondre à une action sur les messages
Le code suivant montre un exemple d'application Chat qui répond à l'action sur les messages Me le rappeler avec un message texte. Pour répondre aux actions sur les messages, l'application Chat gère les objets d'événement à partir d'un déclencheur Commande d'application. Lorsque la charge utile d'un objet d'événement contient un
ID de commande d'action sur les messages, l'application Chat renvoie l'action
DataActions avec un createMessageAction
objet :
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();
}
}
Tester la commande
Pour tester la commande et le code, consultez Tester les fonctionnalités interactives des applications Google Chat.
Pour savoir comment tester et utiliser la commande dans l'interface utilisateur Chat, consultez Utiliser des applications dans Google Chat dans la documentation de l'aide Google Chat.
Articles associés
- Afficher des exemples d'applications Chat qui utilisent des commandes
- Envoyer un message
- Ouvrir des boîtes de dialogue interactives