Na tej stronie dowiesz się, jak aplikacje Google Chat mogą wysyłać wiadomości w odpowiedzi na interakcje użytkowników.
-
Rysunek 1. Aplikacja do czatu odpowiada na polecenie ukośnikowe wiadomością tekstową i przyciskiem. -
Rysunek 2. Aplikacja do czatu otwiera okno, w którym użytkownicy mogą wpisywać informacje. -
Rysunek 5. A Aplikacja do czatu wysyła wiadomość z tekstem i interaktywną kartą.
Wymagania wstępne
HTTP
Dodatek do Google Workspace, który rozszerza Google Chat. Aby go utworzyć, wykonaj czynności opisane w przewodniku Szybki start dotyczącym protokołu HTTP.
Apps Script
Dodatek do Google Workspace, który rozszerza Google Chat. Aby go utworzyć, wykonaj czynności opisane w przewodniku Szybki start dotyczącym Apps Script.
Projektowanie wiadomości
Aplikacje do czatu mogą zawierać w wiadomości dowolne z tych elementów:
- Tekst zawierający hiperlinki, @wzmianki i emotikony.
- Co najmniej 1 kartę, która może pojawić się w wiadomości lub otworzyć w nowym oknie jako okno.
- Co najmniej 1 widżet dodatkowy, czyli przyciski, które pojawiają się po tekście lub kartach w wiadomości.
Więcej informacji o projektowaniu wiadomości znajdziesz w tej dokumentacji interfejsu Google Chat API:
- Omówienie przesyłania wiadomości
- Formatowanie wiadomości
- Tworzenie kart dla aplikacji Google Chat
- Dodawanie tekstu i obrazów do kart
- Dodawanie interaktywnych elementów interfejsu do kart
Odpowiedz za pomocą wiadomości
Aplikacje do czatu mogą odpowiadać wiadomością na dowolne z tych wyzwalaczy lub interakcji:
- Wyzwalacze wiadomości, np. gdy użytkownicy @wzmiankują aplikację do czatu lub wysyłają do niej wiadomość bezpośrednią.
- Wyzwalacze dodania do pokoju, np. gdy użytkownicy instalują aplikację do czatu z Google Workspace Marketplace lub dodają ją do pokoju.
- Kliknięcia przycisków na kartach w wiadomościach lub oknach. Na przykład gdy użytkownicy wpisują informacje i klikają Prześlij.
Aby odpowiedzieć wiadomością, zwróć działanie DataActions z
CreateMessageAction obiektem:
{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
"message": MESSAGE
}}}
Zastąp ciąg MESSAGE zasobem
Message
z interfejsu Chat API. Więcej informacji o działaniu działań znajdziesz w artykule
Działania w Google Chat.
W tym przykładzie aplikacja do czatu tworzy i wysyła wiadomość tekstową za każdym razem, gdy zostanie dodana do pokoju. Aby wysłać wiadomość tekstową, gdy użytkownik doda Twoją aplikację do czatu do pokoju, aplikacja do czatu odpowiada na wyzwalacz Dodano do pokoju , zwracając działanie DataActions:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The request object from Google Workspace add-on.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
const chatEvent = req.body.chat;
// Send an onboarding message when added to a Chat space
if (chatEvent.addedToSpacePayload) {
res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar' +
'from Google Chat. Take a look at your schedule today by typing' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
chat_event = request.get_json()["chat"]
if "addedToSpacePayload" in chat_event:
return json.jsonify({ "hostAppDataAction": { "chatDataAction": {
"createMessageAction": { "message": {
"text": 'Hi, Cymbal at your service. I help you manage your calendar' +
'from Google Chat. Take a look at your schedule today by typing' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}
}}})
Java
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public GenericJson onEvent(@RequestBody JsonNode event) throws Exception {
JsonNode chatEvent = event.at("/chat");
if(!chatEvent.at("/addedToSpacePayload").isEmpty()) {
return new GenericJson() { {
put("hostAppDataAction", new GenericJson() { {
put("chatDataAction", new GenericJson() { {
put("createMessageAction", new GenericJson() { {
put("message", new Message().setText(
"Hi, Cymbal at your service. I help you manage your calendar" +
"from Google Chat. Take a look at your schedule today by typing" +
"`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
"To learn what else I can do, type `/help`."
));
} });
} });
} });
} };
}
}
}
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app.
*/
function onAddedToSpace(event) {
return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar' +
'from Google Chat. Take a look at your schedule today by typing' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}};
}
Przykładowy kod zwraca tę wiadomość tekstową:
Więcej przykładów odpowiadania wiadomością znajdziesz w tych przewodnikach:
- Odpowiadanie na szybkie polecenia
- Odpowiadanie na polecenia ukośnikowe
- Otwieranie interaktywnych okien
- Zbieranie informacji od użytkowników Google Chat
Aktualizowanie wiadomości
Aplikacje do czatu mogą też aktualizować wysyłane przez siebie wiadomości. Na przykład aby zaktualizować wiadomość po tym, jak użytkownik prześle okno lub kliknie przycisk w wiadomości.
Aby zaktualizować wiadomość aplikacji do Google Chat, zwróć działanie
DataActions z elementem
UpdateMessageAction, jak pokazano w
tym przykładzie:
{ "hostAppDataAction": { "chatDataAction": { "updateMessageAction": {
"message": MESSAGE
}}}}
Zastąp ciąg MESSAGE zasobem
Message
z interfejsu Chat API.
Więcej informacji o działaniu działań znajdziesz w artykule Działania w Google Chat.
Aplikacje do czatu mogą też aktualizować wiadomość od użytkownika, aby zwrócić podgląd wysłanego przez niego linku. Więcej informacji znajdziesz w artykule Wyświetlanie podglądu linków w wiadomościach Google Chat.
Odpowiadanie na interakcje lub wysyłanie proaktywnych wiadomości za pomocą interfejsu Google Chat API
Zamiast zwracać działanie dodatku, aplikacje do czatu mogą używać interfejsu Google Chat API do odpowiadania na interakcje. Aplikacje do czatu muszą na przykład wywoływać interfejs Google Chat API, aby wykonać dowolną z tych czynności:
- Wysyłanie wiadomości zgodnie z harmonogramem lub o zmianach w zasobach zewnętrznych. Na przykład powiadomienia o nowym problemie lub zgłoszeniu.
- Odpowiadanie po upływie ponad 30 sekund od interakcji. Na przykład aby odpowiedzieć wiadomością po zakończeniu długotrwałego zadania.
- Wysyłanie wiadomości poza pokojem, w którym doszło do interakcji.
- Wysyłanie wiadomości w imieniu użytkownika Google Chat.
Aby wysłać wiadomość za pomocą interfejsu Chat API, musisz skonfigurować uwierzytelnianie i wywołać metodę create() w zasobie Message. Instrukcje znajdziesz w artykule
Wysyłanie wiadomości za pomocą interfejsu Google Chat API.
Powiązane artykuły
- Tworzenie interfejsów Google Chat
- Odpowiadanie na szybkie polecenia
- Odpowiadanie na polecenia ukośnikowe
- Otwieranie interaktywnych okien
- Zbieranie informacji od użytkowników Google Chat
- Wyświetlanie podglądu linków w wiadomościach Google Chat
- Wysyłanie wiadomości za pomocą interfejsu Google Chat API