Otrzymuj interakcje użytkowników i reaguj na nie

Z tego artykułu dowiesz się, jak aplikacja Google Chat może odbierać interakcje użytkowników w Google Chat i na nie odpowiadać.

Aby tworzyć interaktywne interfejsy aplikacji do Google Chat, używaj tych komponentów:

  • Wywołania: sposoby, w jakie użytkownicy Google Chat mogą wywoływać aplikację do obsługi czatu, np. dodając ją do pokoju lub wysyłając do niej wiadomość.
  • Obiekty zdarzeń: dane, które aplikacje w Google Chat otrzymują z wyzwalaczy lub interakcji z interfejsem.
  • Czynności: sposoby, w jakie aplikacje do obsługi czatu mogą reagować na interakcje, np. wysyłać wiadomości lub zwracać interfejs użytkownika oparty na kartach.
Aplikacja do obsługi czatu otrzymuje obiekt zdarzenia z wyzwalacza Dodano do pokoju
Ilustracja 1. Gdy użytkownik doda aplikację do obsługi czatu w Google Chat do pokoju, uruchomi się wyzwalacz Dodano do pokoju i wyśle obiekt zdarzenia. Aby odpowiedzieć wiadomością, aplikacja Google Chat obsługuje obiekt zdarzenia i zwraca działanie, które tworzy wiadomość.

Aplikacje do obsługi czatu mogą tworzyć i wyświetlać interfejsy w te sposoby:

  • Wiadomości, które mogą zawierać tekst, statyczne lub interaktywne karty oraz przyciski akcesoriów.
  • Strony główne (strona aplikacji), które pojawiają się na karcie Strona główna w wiadomościach prywatnych 1:1 z aplikacją w Google Chat.
  • Okna, czyli karty, które otwierają się w nowym oknie i zwykle proszą użytkowników o przesłanie informacji.
  • Podglądy linków, czyli karty, które wyświetlają podgląd informacji o usłudze zewnętrznej.

Wymagania wstępne

Jak działają interakcje użytkowników

Gdy użytkownik wchodzi w interakcję z aplikacją do obsługi czatu, Google Chat wywołuje skonfigurowany wyzwalacz i wysyła obiekt zdarzenia do punktu końcowego lub funkcji aplikacji do obsługi czatu. Aplikacja w Google Chat przetwarza obiekt zdarzenia i może synchronicznie zwrócić działanie w ciągu 30 sekund lub asynchronicznie odpowiedzieć za pomocą interfejsu Chat API.

Poniższy diagram pokazuje, jak aplikacje Google Chat przetwarzają interakcje użytkowników i na nie odpowiadają:

Architektura przetwarzania interakcji użytkowników przez aplikacje Google Chat.

Aktywatory

Wywołania to konkretne sposoby, w jakie użytkownicy wywołują aplikację do obsługi czatu za pomocą interfejsu Google Chat, np. używając @wzmianek lub poleceń aplikacji.

W tabeli poniżej znajdziesz wyzwalacze Google Chat, ich opis i typowe reakcje aplikacji Google Chat:

Aktywator Opis Typowa odpowiedź
Dodano do pokoju

Użytkownik dodaje aplikację do obsługi czatu do pokoju lub administrator Google Workspace instaluje aplikację do obsługi czatu w pokojach do czatu z użytkownikami w organizacji. Więcej informacji o aplikacjach do obsługi czatu zainstalowanych przez administratorów znajdziesz w artykule Instalowanie aplikacji z Marketplace w domenie w dokumentacji pomocy dla administratorów Google Workspace.

Aplikacja Google Chat wysyła wiadomość wprowadzającą, która wyjaśnia, co robi i jak użytkownicy w pokojach mogą z nią wchodzić w interakcje.
Wiadomość

Użytkownik wchodzi w interakcję z aplikacją Google Chat w wiadomości w jeden z tych sposobów:

  • Wysyła wiadomość w pokoju czatu z aplikacją Chat.
  • wzmianki o aplikacji do obsługi czatu w dowolnym typie pokoju,
  • Wysyła wiadomość zawierającą link pasujący do wzorca adresu URL dla podglądów linków.
  • Wpisuje tekst w menu wielokrotnego wyboru widżetu selectionInput.
Aplikacja Google Chat odpowiada na podstawie treści wiadomości. Na przykład aplikacja w Google Chat odpowiada wiadomością, dołącza kartę podglądu linku lub sugeruje elementy w menu wielokrotnego wyboru.
Usunięto z pokoju

użytkownik usunie aplikację do obsługi czatu z pokoju lub administrator Google Workspace odinstaluje aplikację do obsługi czatu dla użytkownika w organizacji.

Użytkownicy nie mogą usuwać aplikacji Google Chat zainstalowanych przez administratora. Jeśli użytkownik zainstalował wcześniej aplikację Google Chat, pozostanie ona zainstalowana niezależnie od tego, czy administrator Google Workspace spróbuje ją odinstalować.

Aplikacja Google Chat usuwa wszystkie powiadomienia przychodzące skonfigurowane dla pokoju (np. usuwa webhooka) i czyści pamięć wewnętrzną. Aplikacje do Google Chat nie mogą odpowiadać na ten aktywator, ponieważ nie są już uczestnikami obszaru.
Polecenie aplikacji

Użytkownik wywołuje polecenie aplikacji do obsługi czatu (np. polecenie po ukośniku, szybkie polecenie lub działanie związane z wiadomością).

Aplikacja Chat odpowie na polecenie. Na przykład odpowiada wiadomością lub otwiera okno dialogowe.
Strona główna aplikacji

Użytkownik otwiera kartę Strona główna na czacie indywidualnym z aplikacją do obsługi czatu lub wchodzi w interakcję z widżetem na karcie strony głównej.

Aplikacja Chat zwraca obiekt RenderActions, który wysyła kartę strony głównej (pushCard) lub aktualizuje wyświetlaną kartę strony głównej (updateCard).

Punkty końcowe lub funkcje wywołania zwrotnego dla tych wyzwalaczy konfiguruje się w konsoli Google Cloud na stronie Konfiguracja interfejsu Chat API. Szczegółowe instrukcje znajdziesz w artykule Konfigurowanie interfejsu Google Chat API.

Konfigurowanie promptów początkowych

Prompty startowe pomagają użytkownikom odkrywać funkcje aplikacji do Google Chat, gdy otwierają pusty czat 1:1 z aplikacją. Możesz skonfigurować maksymalnie 3 prompty startowe.

Aby dodać i skonfigurować prośby początkowe:

  1. W konsoli Google Cloud otwórz stronę Konfiguracja interfejsu Chat API:

    Otwórz stronę konfiguracji interfejsu Chat API

  2. W sekcji Funkcje interaktywne znajdź Wstępne prompty i kliknij Dodaj prompt.

  3. W polu Pozycja (1–3) wpisz liczbę od 1 do 3, aby określić kolejność wyświetlania.

  4. W sekcji Wybór typu wybierz sposób działania promptu:

    • Prompt tekstowy: po kliknięciu elementu z promptem w pasku tworzenia wiadomości pojawi się wstępnie zdefiniowany tekst.
    • Wiersz poleceń: po kliknięciu uruchamia zarejestrowane polecenie po ukośniku lub szybkie polecenie. Nie można wybrać poleceń, które wymagają dodatkowych argumentów.
  5. Skonfiguruj prompta na podstawie wybranego typu:

    • Jeśli wybierzesz Prompt tekstowy:

      1. W sekcji Tytuł wpisz tytuł promptu wyświetlany w elemencie (maksymalnie 30 znaków).
      2. W sekcji Tekst prompta wpisz tekst, który ma się pojawiać na pasku tworzenia wiadomości (maksymalnie 60 znaków).
      3. Opcjonalnie: dodaj zlokalizowane tytuły i tekst dla użytkowników w innych językach:
      4. W sekcji Lokalne prompty kliknij Dodaj język.
      5. W sekcji Język wybierz z menu obsługiwany język.
      6. W polu Zlokalizowany tytuł wpisz zlokalizowany tytuł (maksymalnie 30 znaków).
      7. W sekcji Tekst prompta w języku lokalnym wpisz tekst prompta w języku lokalnym (maksymalnie 60 znaków).
      8. Powtórz te czynności, aby dodać więcej języków.
    • Jeśli wybrano Wiersz polecenia:

      1. W sekcji Polecenie po ukośniku / Szybkie polecenie wybierz polecenie z menu.
  6. Kliknij Gotowe, a następnie u dołu strony kliknij Zapisz.

Obsługa ponownych prób wywołania HTTP w usłudze

Jeśli żądanie HTTPS do Twojej usługi zakończy się niepowodzeniem (np. z powodu przekroczenia limitu czasu, tymczasowej awarii sieci lub kodu stanu HTTPS innego niż 2xx), Google Chat może ponowić próbę dostarczenia kilka razy w ciągu kilku minut (ale nie jest to gwarantowane). W związku z tym w niektórych sytuacjach aplikacja do obsługi czatu może otrzymać to samo zdarzenie kilka razy. Jeśli żądanie zostanie zrealizowane, ale zwróci nieprawidłowy ładunek odpowiedzi, Google Chat nie ponowi żądania.

Obiekty zdarzeń

Aplikacje do obsługi czatu otrzymują obiekty zdarzeń, gdy uruchamia się wyzwalacz Google Chat lub gdy użytkownicy Google Chat wchodzą w interakcję z interfejsem aplikacji do obsługi czatu (np. klikają przycisk lub przesyłają okno). Obiekt zdarzenia umożliwia używanie danych o interakcjach do reagowania lub aktualizowania interfejsu.

Ładunki obiektów zdarzeń

Każdy obiekt zdarzenia na czacie zawiera obiekt commonEventObject z informacjami o hoście i platformie (hostApp: "CHAT", clientPlatform, userLocale, userTimezone, parameters i formInputs) oraz obiekt chat zawierający kontekst specyficzny dla czatu:

  • W przypadku wyzwalacza Strona główna aplikacji (gdy użytkownik otwiera kartę Strona główna na czacie indywidualnym z aplikacją obsługującą Google Chat) obiekt chat zawiera pola chat.user i chat.eventTime bez pola payload union. Gdy użytkownik kliknie przycisk na karcie strony głównej, obiekt zdarzenia będzie zawierać parametr chat.buttonClickedPayload wraz z parametrem commonEventObject.parameters (i parametrem commonEventObject.formInputs, jeśli karta zawiera pola formularza).
  • W przypadku interakcji z pokojem i wiadomościami (Dodano do pokoju, Wiadomość, Usunięto z pokoju, Polecenie aplikacji lub interakcje z przyciskami i widżetami) obiekt chat zawiera chat.user, chat.space, chat.eventTime i odpowiedni ładunek interakcji:
    • messagePayload: zawiera pola space, message i configCompleteRedirectUri, gdy użytkownik wysyła wiadomość.
    • addedToSpacePayload: zawiera space, interactionAdd i configCompleteRedirectUri, gdy aplikacja Google Chat jest dodawana do pokoju.
    • removedFromSpacePayload: zawiera space, gdy aplikacja Google Chat zostanie usunięta z pokoju.
    • buttonClickedPayload: zawiera space, message, isDialogEvent i dialogEventType, gdy użytkownik kliknie przycisk na karcie lub w oknie.
    • widgetUpdatedPayload: zawiera space, gdy użytkownik wchodzi w interakcję z widżetem, np. wpisuje tekst w menu wielokrotnego wyboru z zewnętrznym źródłem danych.
    • appCommandPayload: zawiera znaki space, message, appCommandMetadata, isDialogEvent, dialogEventType i configCompleteRedirectUri, gdy użytkownik wywoła polecenie aplikacji.

Więcej informacji o obiektach zdarzeń dodatku w Chat i innych aplikacjach Google Workspace znajdziesz w artykule Obiekty zdarzeń.

Przekazywanie odpowiedzi

W tej sekcji dowiesz się, jak aplikacje do Google Chat używają działań, aby synchronicznie odpowiadać na interakcje użytkowników.

Aby odpowiedzieć za pomocą działania, aplikacja do obsługi czatu musi odpowiedzieć w ciągu 30 sekund, a odpowiedź musi dotyczyć pokoju, w którym nastąpiła interakcja. Te synchroniczne odpowiedzi nie wymagają uwierzytelniania. Jeśli aplikacja do obsługi czatu potrzebuje więcej niż 30 sekund lub musi działać poza przestrzenią, skonfiguruj uwierzytelnianie i odpowiadaj asynchronicznie za pomocą interfejsu Google Chat API.

Aby synchronicznie odpowiadać na interakcje użytkownika, aplikacja do obsługi czatu przetwarza przychodzący obiekt zdarzenia i zwraca jeden z tych obiektów JSON:

  • DataActions: tworzy lub aktualizuje wiadomości na czacie (CreateMessageAction, UpdateMessageAction) albo dołącza podglądy linków (UpdateInlinePreviewAction) za pomocą chatDataActionMarkup.
  • RenderActions: tworzy, aktualizuje lub zamyka stronę główną lub okno (pushCard, updateCard, endNavigation: "CLOSE_DIALOG") albo podaje dynamiczne sugestie wpisywania dla menu wielokrotnego wyboru (modifyCard).
  • AuthorizationError: wyświetla użytkownikom podstawową kartę autoryzacji (basic_authorization_prompt), aby mogli się zalogować lub uwierzytelnić w usłudze zewnętrznej.

W tabeli poniżej znajdziesz informacje o tym, jak aplikacje w Google Chat mogą odpowiadać za pomocą działań. Aplikacje do obsługi czatu mogą zwracać obiekty JSON bezpośrednio lub tworzyć odpowiedź za pomocą funkcji AddOnResponseService i CardService w Apps Script.

Odpowiedź aplikacji do obsługi czatu Wymagane działanie do zwrócenia (JSON) Wymagane działanie, aby zwrócić wartość (Apps Script)
Wysyłanie wiadomości lub aktualizowanie wiadomości. DataActions (createMessageAction lub updateMessageAction) DataActionsResponse
wyświetlać podgląd linków w wiadomościach wysyłanych przez użytkowników Google Chat w pokoju; DataActions (updateInlinePreviewAction) DataActionsResponse
Wyświetlanie lub aktualizowanie strony głównej na karcie Główna w czacie. RenderActions (pushCard lub updateCard) ActionResponse
Otwieranie, aktualizowanie i zamykanie okien. RenderActions (pushCard, updateCard lub endNavigation: "CLOSE_DIALOG") ActionResponse
Aby zbierać informacje z karty lub okna, możesz sugerować elementy wyboru na podstawie tego, co użytkownicy wpisują w menu wielokrotnego wyboru. RenderActions (modifyCard) ActionResponse
Poproś o konfigurację lub autoryzację usługi zewnętrznej. AuthorizationError (basic_authorization_prompt) AuthorizationException

Odpowiedz za pomocą wiadomości

Aplikacje do obsługi czatu mogą odpowiadać wiadomością na dowolne z tych wywołań lub interakcji:

  • Wiadomość wywołuje, np. gdy użytkownicy @wzmiankują lub wysyłają bezpośrednią wiadomość do aplikacji w Google Chat.
  • Wywoływanie zdarzeń „Dodano do pokoju”, np. gdy użytkownicy instalują aplikację do obsługi czatu w Google Chat z Google Workspace Marketplace lub dodają ją do pokoju.
  • Polecenia aplikacji wywołują, na przykład gdy użytkownicy wywołują polecenie po ukośniku lub szybkie polecenie.
  • Kliknięcia przycisków na kartach w wiadomościach lub oknach. Na przykład gdy użytkownicy wpisują informacje i klikają przycisk przesyłania.

Aplikacje do obsługi czatu mogą zawierać w wiadomości dowolne z tych elementów:

  • Tekst zawierający hiperlinki, wzmianki @ i emotikony. Zobacz Formatowanie wiadomości.
  • Jedna lub więcej kart, które mogą się wyświetlać w wiadomości lub otwierać w nowym oknie jako okno dialogowe. Więcej informacji znajdziesz w artykule Tworzenie kart dla aplikacji Google Chat.
  • co najmniej 1 widżet dodatkowy, czyli przycisk, który pojawia się po tekście lub kartach w wiadomości;

Aby odpowiedzieć wiadomością, zwróć obiekt DataActions z obiektem CreateMessageAction:

{
  "hostAppDataAction": {
    "chatDataAction": {
      "createMessageAction": {
        "message": <var>MESSAGE</var>
      }
    }
  }
}

Zastąp MESSAGE zasobem Message z interfejsu Chat API.

W tym przykładzie aplikacja do obsługi czatu tworzy i wysyła wiadomość tekstową z informacjami wprowadzającymi, gdy tylko zostanie dodana do pokoju. Odpowiada na wywołanie Dodano do pokoju za pomocą funkcji DataActions:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The request object from Google Chat.
 * @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`."
              ));
            } });
          } });
        } });
      } };
    }
    return new GenericJson();
  }
}

Google Apps Script

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Google Chat.
 * @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 ten SMS:

Przykładowa wiadomość wprowadzająca

Aktualizowanie wiadomości

Aplikacje do obsługi czatu mogą też aktualizować wysyłane przez siebie wiadomości. Na przykład aplikacja do Google Chat może zaktualizować wiadomość po tym, jak użytkownik prześle okno lub kliknie przycisk na karcie w wiadomości.

Aby zaktualizować wiadomość aplikacji do Google Chat w odpowiedzi na interakcję, zwróć DataActions z UpdateMessageAction:

{
  "hostAppDataAction": {
    "chatDataAction": {
      "updateMessageAction": {
        "message": <var>MESSAGE</var>
      }
    }
  }
}

Zastąp MESSAGE zasobem Message z interfejsu Chat API.

Aplikacje do obsługi czatu mogą też aktualizować wiadomość wysłaną przez użytkownika, aby dołączyć kartę podglądu linku za pomocą funkcji updateInlinePreviewAction. Więcej informacji znajdziesz w sekcji Podgląd linków.

Odpowiadanie asynchroniczne za pomocą interfejsu Google Chat API

Zamiast synchronicznego zwracania działania aplikacje Google Chat mogą wywoływać interfejs Google Chat API, aby odpowiadać na interakcje lub wysyłać proaktywne wiadomości. Na przykład aplikacje do obsługi czatu muszą wywoływać interfejs Google Chat API, aby wykonać dowolne z tych działań:

  • Odpowiadaj na interakcję po 30 sekundach (np. po zakończeniu długotrwałego zadania).
  • Wysyłanie wiadomości zgodnie z harmonogramem lub powiadomień o zmianach w zasobach zewnętrznych.
  • wykonywać zadań poza przestrzenią, w której doszło do interakcji,
  • Wykonywanie w Google Chat zadań, które nie są dostępne jako działania synchroniczne, np. wyświetlanie listy pokoi lub dodawanie użytkowników do pokoju.
  • wykonywać zadania w imieniu użytkownika Google Chat (co wymaga uwierzytelnienia użytkownika);

Aby uniknąć błędu wyświetlanego użytkownikowi, który informuje, że aplikacja do obsługi czatu nie odpowiada, musisz potwierdzić otrzymanie obiektu zdarzenia w ciągu 30 sekund, zwracając pustą odpowiedź:

Node.js

async function onEvent(req, res) {
  // Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return res.send({});
};

Python

def on_event(event) -> dict:
  # Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return {}

Java

public String onEvent(JsonNode event) {
  // Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return "{}";
}

Google Apps Script

function onEvent(event) {
  // Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return null;
}

Aby wysłać wiadomość za pomocą interfejsu Chat API, skonfiguruj uwierzytelnianie i wywołaj metodę spaces.messages.create. Instrukcje znajdziesz w artykule Wysyłanie wiadomości. Przewodniki dotyczące korzystania z dodatkowych metod interfejsu Chat API znajdziesz w omówieniu interfejsu Chat API.

Aplikacje do obsługi czatu, które nie są dodatkami: otrzymywanie odpowiedzi na interakcje użytkowników

Aplikacje do czatu, które nie są dodatkami do Google Workspace, otrzymują zdarzenia interakcji z interfejsem Chat API (Event) zamiast obiektów zdarzeń dodatku do Google Workspace (EventObject) i odpowiadają, zwracając zasób Message zamiast działania.

Aby przekształcić aplikację do czatu, która nie jest dodatkiem, w dodatek do Google Workspace, zapoznaj się z artykułem Przekształcanie aplikacji do Google Chat w dodatek do Google Workspace.

Typy zdarzeń interakcji

W przypadku każdego typu interakcji użytkownika Google Chat wysyła do aplikacji Google Chat, która nie jest dodatkiem, obiekt Event, którego typ jest reprezentowany przez pole eventType:

Interakcja użytkownika eventType Typowa odpowiedź aplikacji do Google Chat, która nie jest dodatkiem
Użytkownik wysyła wiadomość do aplikacji do obsługi czatu. Na przykład @wspomina aplikację lub używa polecenia po ukośniku. MESSAGE Aplikacja Google Chat odpowiada na podstawie treści wiadomości. Na przykład aplikacja do obsługi czatu odpowiada na polecenie po ukośniku /about wiadomością, która wyjaśnia, jakie zadania może wykonać.
Użytkownik dodaje aplikację do obsługi czatu w Google Chat do pokoju. ADDED_TO_SPACE Aplikacja do Google Chat wysyła wiadomość wprowadzającą, która wyjaśnia, co robi i jak użytkownicy w pokoju mogą z nią wchodzić w interakcje.
Użytkownik usuwa z pokoju aplikację do Google Chat. REMOVED_FROM_SPACE Aplikacja Google Chat usuwa wszystkie przychodzące powiadomienia skonfigurowane dla pokoju (np. usuwa webhooka) i czyści pamięć wewnętrzną.
Użytkownik klika przycisk na karcie w wiadomości w aplikacji, oknie lub na stronie głównej aplikacji w Google Chat. CARD_CLICKED Aplikacja Chat przetwarza i przechowuje wszystkie dane przesłane przez użytkownika lub zwraca inną kartę.
Użytkownik otwiera stronę główną aplikacji do czatu, klikając kartę Strona główna w wiadomości 1:1. APP_HOME Aplikacja do obsługi czatu zwraca statyczną lub interaktywną kartę ze strony głównej.
Użytkownik przesyła formularz ze strony głównej aplikacji do obsługi czatu. SUBMIT_FORM Aplikacja Chat przetwarza i przechowuje wszystkie dane przesłane przez użytkownika lub zwraca inną kartę.
Użytkownik wywołuje polecenie za pomocą szybkiego polecenia. APP_COMMAND Aplikacja Chat odpowiada na podstawie wywołanego polecenia. Na przykład aplikacja do obsługi czatu odpowiada na polecenie About wiadomością, która wyjaśnia, jakie zadania może wykonywać.

Wszystkie obsługiwane zdarzenia interakcji i przykładowe ładunki JSON znajdziesz w artykule Typy zdarzeń interakcji aplikacji Google Chat oraz w EventTypedokumentacji.

Zdarzenia interakcji z okien

Jeśli aplikacja do obsługi czatu, która nie jest dodatkiem, otwiera okna dialogowe, zdarzenie interakcji zawiera te dodatkowe informacje, których możesz użyć do przetworzenia odpowiedzi:

  • Pole isDialogEvent ma wartość true.
  • Element DialogEventType (REQUEST_DIALOG, SUBMIT_DIALOG lub CANCEL_DIALOG) określa, czy interakcja powoduje otwarcie okna, przesłanie informacji z okna czy zamknięcie okna.

Konfigurowanie aplikacji Google Chat, która nie jest dodatkiem, aby otrzymywać zdarzenia interakcji

  1. W konsoli Google Cloud otwórz stronę Konfiguracja interfejsu Chat API:

    Otwórz stronę konfiguracji interfejsu Chat API

  2. W sekcji Funkcje interaktywne odznacz opcję Utwórz tę aplikację do Google Chat jako dodatek do Google Workspace i skonfiguruj Funkcjonalność, pojedynczy punkt końcowy Ustawienia połączenia (adres URL punktu końcowego HTTP, Apps Script, nazwa tematu Cloud Pub/Sub lub Dialogflow), Polecenia, Prompty początkowe, Podglądy linków i Widoczność.

  3. Kliknij Zapisz.

Odpowiadanie na wiadomość w aplikacji do obsługi czatu, która nie jest dodatkiem

Aby odpowiedzieć synchronicznie w aplikacji do Google Chat, która nie jest dodatkiem, zwróć bezpośrednio obiekt Message. W tym przykładzie na zdarzenie ADDED_TO_SPACE interakcji odpowiadamy SMS-em:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The event object from Chat API.
 * @param {Object} res The response object from the Chat app.
 */
exports.cymbalApp = function cymbalApp(req, res) {
  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      '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.
  """
  event = request.get_json()
  if event['type'] == 'ADDED_TO_SPACE':
    return json.jsonify({
      '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`.'
    })
  return json.jsonify({})

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 Message onEvent(@RequestBody JsonNode event) {
    switch (event.get("type").asText()) {
      case "ADDED_TO_SPACE":
        return 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`.");
      default:
        return new Message();
    }
  }
}

Google 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 onAddToSpace(event) {
  return {
    '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`.'
  };
}