Auf dieser Seite wird erläutert, wie Sie Befehle als Google Chat-App einrichten und darauf reagieren.
Mit Befehlen können Nutzer wichtige Funktionen einer Chat-App entdecken und verwenden. Nur Chat-Apps können den Inhalt eines Befehls sehen. Wenn ein Nutzer beispielsweise eine Nachricht mit einem Slash-Befehl sendet, ist die Nachricht nur für den Nutzer und die Chat-App sichtbar.
Informationen dazu, ob Sie Befehle erstellen sollten, und wie Sie Nutzerinteraktionen gestalten, finden Sie unter Alle Nutzer pfade definieren.
Arten von Befehlen für Chat-Apps
Sie können Befehle für Chat-Apps als Slash-Befehle, Schnellbefehle oder Nachrichtenaktionen erstellen. So verwenden Nutzer die einzelnen Befehlstypen:-
Slash-Befehle: Nutzer können einen Slash-Befehl im Menü auswählen oder einen Schrägstrich (
/) und dann einen vordefinierten Text eingeben, z. B./about. Für Slash-Befehle in Chat-Apps ist in der Regel ein Argumenttext erforderlich.Erstellen Sie einen Slash-Befehl, wenn Ihre Chat-App zusätzliche Eingaben vom Nutzer benötigt. Sie können beispielsweise einen Slash-Befehl namens
/searcherstellen, der ausgeführt wird, nachdem der Nutzer einen Suchbegriff eingegeben hat, z. B./search receipts. -
Schnellbefehle:Nutzer können Befehle verwenden, indem sie das Menü im Antwortbereich einer Chat-Nachricht öffnen. Dazu klicken sie auf Hinzufügen
und wählen einen Befehl aus dem Menü aus.
Erstellen Sie einen Schnellbefehl, wenn Ihre Chat-App sofort auf den Nutzer reagieren kann, ohne auf zusätzliche Eingaben zu warten. Sie können beispielsweise einen Schnellbefehl namens Zufälliges Bild erstellen, der sofort mit einem Bild antwortet.
-
Nachrichtenaktionen: Nutzer können Nachrichtenaktionen verwenden, indem sie mit dem Mauszeiger auf eine Nachricht fahren und auf das Dreipunkt-Menü klicken. Dazu öffnen sie das Dreipunkt-Menü und wählen einen Befehl aus dem Menü aus.
Erstellen Sie eine nachrichtenbasierte Aktion, wenn Ihre Chat-App Aktionen basierend auf dem Kontext einer Nachricht ausführen kann.
Die folgenden Bilder zeigen, wie Nutzer das Menü für Slash- und Schnellbefehle sowie Nachrichtenaktionen finden:
Vorbereitung
Node.js
Eine Google Chat-App, die Interaktionsereignisse empfängt und darauf reagiert. Wenn Sie eine interaktive Chat-App mit einem HTTP-Dienst erstellen möchten, führen Sie diese Kurzanleitung aus.
Apps Script
Eine Google Chat-App, die Interaktionsereignisse empfängt und darauf reagiert. Wenn Sie eine interaktive Chat-App in Apps Script erstellen möchten, führen Sie diese Kurzanleitung aus.
Python
Eine Google Chat-App, die Interaktionsereignisse empfängt und darauf reagiert. Wenn Sie eine interaktive Chat-App mit einem HTTP-Dienst erstellen möchten, führen Sie diese Kurzanleitung aus.
Java
Eine Google Chat-App, die Interaktionsereignisse empfängt und darauf reagiert. Wenn Sie eine interaktive Chat-App mit einem HTTP-Dienst erstellen möchten, führen Sie diese Kurzanleitung aus.
Befehl einrichten
In diesem Abschnitt wird erläutert, wie Sie die folgenden Schritte ausführen, um den Befehl einzurichten:
- Erstellen Sie einen Namen und eine Beschreibung für den Befehl.
- Konfigurieren Sie den Befehl in der Google Cloud Console.
Befehl benennen und beschreiben
Der Name eines Befehls ist das, was Nutzer eingeben oder auswählen, um die Chat-App aufzurufen. Unter dem Namen wird auch eine kurze Beschreibung angezeigt, um Nutzer weiter darüber zu informieren, wie sie den Befehl verwenden:
Beachten Sie bei der Auswahl eines Namens und einer Beschreibung für Ihren Befehl die folgenden Empfehlungen:
Befehl benennen:
- Verwenden Sie kurze, beschreibende und handlungsauffordernde Wörter oder Sätze, damit die Befehle für den
Nutzer klar verständlich sind. Verwenden Sie beispielsweise anstelle des Namens
Create a reminderRemind me. - Verwenden Sie einen eindeutigen oder häufig verwendeten Namen für Ihren Befehl. Wenn Ihr Befehl eine
typische Interaktion oder Funktion beschreibt, können Sie einen häufig verwendeten Namen verwenden, den Nutzer kennen und erwarten,
z. B.
SettingsoderFeedback. Andernfalls sollten Sie eindeutige Befehls namen verwenden. Wenn Ihr Befehlsname für andere Chat-Apps identisch ist, muss der Nutzer ähnliche Befehle filtern, um Ihren zu finden und zu verwenden.
Befehl beschreiben:
- Halten Sie die Beschreibung kurz und klar, damit Nutzer wissen, was sie erwartet, wenn sie den Befehl verwenden.
- Informieren Sie Nutzer über Formatierungsanforderungen für den Befehl. Wenn Sie beispielsweise einen Slash-Befehl erstellen, für den ein Argumenttext erforderlich ist, legen Sie die Beschreibung auf etwas wie
Remind me to do [something] at [time]fest. - Informieren Sie Nutzer darüber, ob die Chat-App allen im Bereich antwortet oder
privat dem Nutzer, der den Befehl aufruft. Für den Schnellbefehl
Aboutkönnten Sie ihn beispielsweise alsLearn about this app (Only visible to you)beschreiben.
Befehl in der Google Cloud Console konfigurieren
Wenn Sie einen Slash-Befehl, einen Schnellbefehl oder eine nachrichtenbasierte Aktion erstellen möchten, geben Sie Informationen zum Befehl oder zur Aktion in der Konfiguration Ihrer Chat-App für die Google Chat API an.
So konfigurieren Sie einen Befehl in der Google Chat API:
Klicken Sie in der Google Cloud Console auf das Menü > APIs und Dienste > Aktivierte APIs und Dienste > Google Chat API
Klicken Sie auf Konfiguration.
Klicken Sie unter Befehle auf Befehl hinzufügen.
Geben Sie eine Befehls-ID, eine Beschreibung, einen Befehlstyp und einen Namen für den Befehl ein:
- Befehls-ID:Eine Zahl von 1 bis 1000, mit der Ihre Chat-App den Befehl erkennt und eine Antwort zurückgibt.
- Beschreibung:Der Text, der beschreibt, was der Befehl bewirkt. Beschreibungen können bis zu 50 Zeichen lang sein und Sonderzeichen enthalten.
- Befehlstyp:Wählen Sie entweder Schnellbefehl, Slash-Befehl oder nachrichtenbasierte Aktion aus.
- Geben Sie einen Namen für den Befehl an:
- Name des Schnellbefehls:Der Anzeigename, den Nutzer im Menü auswählen, um den Befehl aufzurufen. Kann bis zu 50 Zeichen lang sein und Sonderzeichen enthalten. Beispiel:
Remind me(Erinnerung erstellen). - Name des Slash-Befehls:Der Text, den Nutzer eingeben, um den Befehl in einer Nachricht aufzurufen. Muss mit einem Schrägstrich beginnen, darf nur Text enthalten und kann bis zu 50 Zeichen lang sein. Beispiel:
/remindMe. - Name der nachrichtenbasierten Aktion:Der Anzeigename, den Nutzer im Menü auswählen, um die nachrichtenbasierte Aktion aufzurufen. Kann bis zu 50 Zeichen lang sein und Sonderzeichen enthalten. Beispiel:
Remind me(Erinnerung erstellen).
- Name des Schnellbefehls:Der Anzeigename, den Nutzer im Menü auswählen, um den Befehl aufzurufen. Kann bis zu 50 Zeichen lang sein und Sonderzeichen enthalten. Beispiel:
Optional: Meldung zur Ladebenachrichtigung: Eine Toast-Benachrichtigung, die dem Nutzer angezeigt wird, während die nachrichtenbasierte Aktion ausgeführt wird. Nur für Nachrichtenaktionen verfügbar, bei denen keine Dialogfelder geöffnet werden.
Optional: Wenn Ihre Chat-App mit dem Befehl mit einem Dialogfeld antworten soll, aktivieren Sie das Kästchen Dialogfeld öffnen.
Klicken Sie auf Speichern.
Der Befehl ist jetzt für die Chat-App konfiguriert.
Auf einen Befehl antworten
Wenn Nutzer einen Befehl verwenden, empfängt Ihre Chat-App ein Interaktionsereignis. Die Ereignisnutzlast enthält Metadaten mit Details zum aufgerufenen Befehl (einschließlich der Befehls-ID und des Befehlstyps), damit Sie eine entsprechende Antwort zurückgeben können.
/help (Hilfe), um zu erklären, wie Nutzer Support erhalten.Um auf die einzelnen Befehlstypen zu antworten, müssen Sie verschiedene Ereignistypen und Metadatenobjekte in der Ereignisnutzlast verarbeiten:
| Befehlstyp | Ereignistyp | Befehlsmetadaten |
|---|---|---|
| Slash-Befehl | MESSAGE |
message.slashCommand
oder message.annotation.slashCommand |
| Schnellbefehl | APP_COMMAND |
appCommandMetadata
|
| Nachrichtenaktion | APP_COMMAND |
appCommandMetadata
|
Informationen zum Antworten auf einen Befehl mit einer Nachricht finden Sie in den folgenden Abschnitten.
Auf einen Slash-Befehl antworten
Der folgende Code zeigt ein Beispiel für eine Chat-App, die auf den Slash-Befehl /about (Info) antwortet. Die Chat-App verarbeitet MESSAGE-Interaktionsereignisse, erkennt, ob das Interaktionsereignis die passende Befehls-ID enthält, und gibt eine private Nachricht zurück:
Node.js
Apps Script
Python
Java
Ersetzen Sie ABOUT_COMMAND_ID durch die Befehls-ID, die Sie beim Konfigurieren des Befehls in der Google Cloud Console angegeben haben.
Auf einen Schnellbefehl antworten
Der folgende Code zeigt ein Beispiel für eine Chat-App, die auf den Schnellbefehl Help (Hilfe) antwortet. Die Chat-App verarbeitet APP_COMMAND-Interaktionsereignisse, erkennt, ob das Interaktionsereignis die passende Befehls-ID enthält, und gibt eine private Nachricht zurück:
Node.js
Apps Script
Python
Java
Ersetzen Sie HELP_COMMAND_ID durch die Befehls-ID, die Sie beim Konfigurieren des Befehls in der Google Cloud Console angegeben haben.
Auf eine nachrichtenbasierte Aktion antworten
Der folgende Code zeigt ein Beispiel für eine Chat-App, die auf die nachrichtenbasierte Aktion Remind me antwortet. Die Chat-App verarbeitet APP_COMMAND-Interaktionsereignisse, erkennt, ob das Interaktionsereignis die passende Befehls-ID enthält, und gibt eine private Nachricht zurück:
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 handleAppCommand(event, res) {
// Collect the command ID and type from the event metadata.
const {appCommandId, appCommandType} = event.appCommandMetadata;
// Use appCommandType to detect message actions.
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.message.text;
// Return a response that includes details from the original message.
return res.send({
text: `Setting a reminder for this message: "${messageText}"`
});
}
}
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.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.message.text;
// Return a response that includes details from the original message.
return { "text": "Setting a reminder for message: " + messageText };
}
}
Python
def handle_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.
metadata = event.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 = event.get('message', {}).get('text')
# Return a response that includes details from the original message.
return {
"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 handleAppCommand(JsonObject event, HttpResponse response) throws Exception {
// Collect the command ID and type from the event metadata.
JsonObject metadata = event.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 = event.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);
response.getWriter().write(responseMessage.toString());
}
}
}
Ersetzen Sie REMIND_ME_COMMAND_ID durch die Befehls-ID, die Sie beim Konfigurieren des Befehls in der Google Cloud Console angegeben haben.
Befehl testen
Informationen zum Testen des Befehls und des Codes finden Sie unter Interaktive Funktionen für Google Chat-Apps testen.
Informationen zum Testen und Verwenden des Befehls in der Chat-UI finden Sie in der Google Chat-Hilfe unter Apps in Google Chat verwenden.
Weitere Informationen
- Chat-App-Beispiele mit Befehlen ansehen
- Nachricht senden
- Interaktive Dialogfelder öffnen