Z tej strony dowiesz się, jak skonfigurować polecenia i na nie odpowiadać jako aplikacja Google Chat.
Polecenia pomagają użytkownikom odkrywać i używać najważniejszych funkcji aplikacji do obsługi czatu. Tylko aplikacje do obsługi czatu mogą wyświetlać treść polecenia. Jeśli na przykład użytkownik wyśle wiadomość z poleceniem po ukośniku, będzie ona widoczna tylko dla niego i aplikacji do obsługi czatu.
Aby zdecydować, czy tworzyć polecenia, i dowiedzieć się, jak projektować interakcje z użytkownikami, przeczytaj artykuł Określanie wszystkich ścieżek użytkownika.
Typy poleceń aplikacji do obsługi czatu
Polecenia aplikacji do obsługi czatu możesz tworzyć jako polecenia po ukośniku, szybkie polecenia lub działania związane z wiadomościami. Aby używać poszczególnych typów poleceń, użytkownicy mogą wykonać te czynności:-
Polecenia po ukośniku: użytkownicy mogą wybrać polecenie po ukośniku z menu lub wpisać ukośnik (
/) i zdefiniowany tekst, np./about. Aplikacje do obsługi czatu zwykle wymagają tekstu argumentu dla polecenia po ukośniku.Utwórz polecenie po ukośniku, jeśli aplikacja do obsługi czatu wymaga dodatkowych danych od użytkownika. Możesz na przykład utworzyć polecenie po ukośniku o nazwie
/searchktóre będzie uruchamiane po wpisaniu przez użytkownika frazy do wyszukania, np./search receipts. -
Szybkie polecenia: użytkownicy mogą używać poleceń, otwierając menu w obszarze odpowiedzi na wiadomość na czacie. Aby użyć polecenia, klikają Dodaj
i wybierają polecenie z menu.
Utwórz szybkie polecenie, jeśli aplikacja do obsługi czatu może natychmiast odpowiedzieć użytkownikowi bez czekania na dodatkowe dane. Możesz na przykład utworzyć szybkie polecenie o nazwie Losowy obraz, które natychmiast odpowie obrazem.
-
Działania związane z wiadomościami: użytkownicy mogą używać działań związanych z wiadomościami, najeżdżając kursorem na wiadomość i klikając menu z 3 kropkami. Aby użyć polecenia, otwierają menu z 3 kropkami i wybierają polecenie z menu.
Utwórz sugerowane działanie, jeśli aplikacja do Google Chat może wykonywać działania na podstawie kontekstu wiadomości.
Na tych obrazach pokazujemy, jak użytkownicy mogą znaleźć menu poleceń po ukośniku i szybkich poleceń oraz działań związanych z wiadomościami:
Wymagania wstępne
HTTP
Dodatek do Google Workspace, który rozszerza Google Chat. Aby go utworzyć, wykonaj czynności opisane w przewodniku Szybki start: HTTP.
Apps Script
Dodatek do Google Workspace, który rozszerza Google Chat. Aby go utworzyć, wykonaj czynności opisane w przewodniku Szybki start: Apps Script.
Konfigurowanie polecenia
W tej sekcji dowiesz się, jak wykonać te czynności, aby skonfigurować polecenie:
- Utwórz nazwę i opis polecenia.
- Skonfiguruj polecenie w konsoli Google Cloud.
Nadawanie nazwy i opisywanie polecenia
Nazwa polecenia to tekst, który użytkownicy wpisują lub wybierają, aby wywołać aplikację do obsługi czatu. Krótki opis pojawia się też pod nazwą, aby dodatkowo zachęcić użytkowników do korzystania z polecenia:
Podczas wybierania nazwy i opisu polecenia weź pod uwagę te zalecenia:
Aby nazwać polecenie:
- Używaj krótkich, opisowych i zachęcających do działania słów lub fraz, aby polecenia były jasne dla użytkownika. Zamiast nazwy
Create a reminderużyj na przykładRemind me. - Rozważ użycie unikalnej lub popularnej nazwy polecenia. Jeśli polecenie opisuje
typową interakcję lub funkcję, możesz użyć popularnej nazwy, którą użytkownicy rozpoznają i której się spodziewają,
np.
SettingslubFeedback. W przeciwnym razie spróbuj użyć unikalnych nazw poleceń, ponieważ jeśli nazwa polecenia jest taka sama jak w przypadku innych aplikacji do obsługi czatu, użytkownik musi filtrować podobne polecenia, aby znaleźć i użyć Twojego.
Aby opisać polecenie:
- Opis powinien być krótki i jasny, aby użytkownicy wiedzieli, czego się spodziewać, gdy użyją polecenia.
- Poinformuj użytkowników, czy polecenie ma jakieś wymagania dotyczące formatowania. Jeśli na przykład utworzysz polecenie po ukośniku, które wymaga tekstu argumentu, ustaw opis na coś takiego jak
Remind me to do [something] at [time]. - Poinformuj użytkowników, czy aplikacja do obsługi czatu odpowiada wszystkim w pokoju, czy
tylko użytkownikowi, który wywołał polecenie. Na przykład w przypadku szybkiego polecenia
About, możesz użyć opisuLearn about this app (Only visible to you).
Konfigurowanie polecenia w konsoli Google Cloud
Aby utworzyć polecenie po ukośniku, szybkie polecenie lub sugerowane działanie, musisz określić informacje o poleceniu lub działaniu w konfiguracji aplikacji do Google Chat w interfejsie Google Chat API.
Aby skonfigurować polecenie w interfejsie Google Chat API, wykonaj te czynności:
W konsoli Google Cloud kliknij Menu > Interfejsy API i usługi > Włączone interfejsy API i usługi > Google Chat API
Kliknij Konfiguracja.
W sekcji Ustawienia połączenia otwórz Wyzwalacze i określ szczegóły punktu końcowego. Aby odpowiadać na polecenie, musisz użyć tego wyzwalacza w następnej sekcji.
- URL punktu końcowego HTTP: możesz tu określić jeden wspólny URL punktu końcowego HTTP tutaj. Możesz też użyć różnych punktów końcowych HTTP w przypadku różnych wyzwalaczy, określając punkt końcowy bezpośrednio w polu Polecenie aplikacji.
- Apps Script: wpisz identyfikator wdrożenia Apps Script. Domyślnie zostanie wywołana funkcja
onAppCommand. Aby użyć innej funkcji Apps Script, określ nazwę funkcji niestandardowej w polu Polecenie aplikacji.
W sekcji Polecenia kliknij Dodaj polecenie.
Wpisz te informacje o poleceniu:
- Identyfikator polecenia: liczba od 1 do 1000, której aplikacja do obsługi czatu używa do rozpoznawania polecenia i zwracania odpowiedzi.
- Opis: tekst opisujący, jak używać polecenia i jak je formatować. Opisy mogą mieć maksymalnie 50 znaków.
- Typ polecenia: wybierz Szybkie polecenie, Polecenie po ukośniku lub sugerowane działanie.
- Określ nazwę polecenia:
- Nazwa szybkiego polecenia: nazwa wyświetlana, którą użytkownicy wybierają z menu, aby wywołać polecenie. Może mieć maksymalnie 50 znaków i zawierać znaki specjalne. Na przykład
Remind me. - Nazwa polecenia po ukośniku: tekst, który użytkownicy wpisują, aby wywołać polecenie w wiadomości. Musi zaczynać się od ukośnika, zawierać tylko tekst i mieć maksymalnie 50 znaków. Na przykład
/remindMe. - Nazwa sugerowanego działania: nazwa wyświetlana, którą użytkownicy wybierają z menu, aby wywołać sugerowane działanie. Może mieć maksymalnie 50 znaków i zawierać znaki specjalne. Na przykład
Remind me.
- Nazwa szybkiego polecenia: nazwa wyświetlana, którą użytkownicy wybierają z menu, aby wywołać polecenie. Może mieć maksymalnie 50 znaków i zawierać znaki specjalne. Na przykład
Opcjonalnie: Wiadomość powiadomienia o wczytywaniu: powiadomienie typu toast wyświetlane użytkownikowi podczas wykonywania sugerowanego działania. Dostępne tylko w przypadku działań związanych z wiadomościami, które nie otwierają okien.
Opcjonalnie: jeśli chcesz, aby aplikacja do obsługi czatu odpowiadała na polecenie za pomocą okna, zaznacz pole Otwórz okno.
Kliknij Zapisz.
Polecenie jest teraz skonfigurowane dla aplikacji do obsługi czatu.
Odpowiadanie na polecenie
Gdy użytkownicy używają polecenia, aplikacja do obsługi czatu
otrzymuje obiekt zdarzenia.
Ładunek zdarzenia zawiera obiekt
appCommandPayload
ze szczegółami wywołanego polecenia (w tym identyfikatorem
i typem polecenia), dzięki czemu możesz zwrócić odpowiednią odpowiedź.
Obiekt zdarzenia jest wysyłany do punktu końcowego HTTP lub funkcji Apps Script
określonej podczas konfigurowania wyzwalacza Polecenie aplikacji.
/help aby wyjaśnić, jak uzyskać pomoc.Ten kod pokazuje przykład aplikacji do obsługi czatu
która odpowiada na polecenie po ukośniku /about wiadomością tekstową. Aby odpowiadać na polecenia po ukośniku, aplikacja do obsługi czatu obsługuje obiekty zdarzeń z wyzwalacza Polecenie aplikacji. Gdy ładunek obiektu zdarzenia zawiera identyfikator polecenia po ukośniku, aplikacja do obsługi czatu zwraca działanie DataActions
z obiektem createMessageAction:
Node.js
Python
Java
Apps Script
Aby użyć tego przykładowego kodu, zastąp ABOUT_COMMAND_ID identyfikatorem
polecenia określonym podczas
konfigurowania polecenia w interfejsie Chat API.
Odpowiadanie na sugerowane działanie
Ten kod pokazuje przykład aplikacji do Google Chat, która odpowiada na sugerowane działanie Przypomnij mi wiadomością tekstową. Aby odpowiadać na działania związane z wiadomościami, aplikacja do obsługi czatu obsługuje obiekty zdarzeń z wyzwalacza Polecenie aplikacji. Gdy ładunek obiektu zdarzenia zawiera identyfikator polecenia sugerowanego działania, aplikacja do Google Chat zwraca działanie DataActions z obiektem createMessageAction:
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();
}
}
Aby użyć tego przykładowego kodu, zastąp REMIND_ME_COMMAND_ID identyfikatorem polecenia określonym podczas konfigurowania polecenia w interfejsie Chat API.
Testowanie polecenia
Aby przetestować polecenie i kod, przeczytaj artykuł Testowanie funkcji interaktywnych aplikacji Google Chat.
Aby dowiedzieć się, jak testować i używać polecenia w interfejsie Google Chat, przeczytaj artykuł Korzystanie z aplikacji w Google Chat w dokumentacji Centrum pomocy Google Chat.
Powiązane artykuły
- Wyświetlanie przykładów aplikacji do obsługi czatu które używają poleceń
- Wysyłanie wiadomości
- Otwieranie interaktywnych okien