Wysyłanie wiadomości w Google Chat

Na tej stronie dowiesz się, jak aplikacje Google Chat mogą wysyłać wiadomości w odpowiedzi na interakcje użytkowników.

  • Formularz kontaktowy z polecenia po ukośniku.
    Rysunek 1. Aplikacja do czatu odpowiada na polecenie ukośnikowe wiadomością tekstową i przyciskiem.
  • Formularz kontaktowy w oknie.
    Rysunek 2. Aplikacja do czatu otwiera okno, w którym użytkownicy mogą wpisywać informacje.
  • Wiadomość na karcie z widżetami wprowadzania danych w formularzu.
    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:

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.

W przeciwnym razie aplikacje do czatu mogą wysyłać wiadomości proaktywnie, wywołując interfejs Google Chat API.

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ą:

Przykładowa wiadomość wprowadzająca

Więcej przykładów odpowiadania wiadomością znajdziesz w tych przewodnikach:

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.