Google Chat-Nachrichten senden

Auf dieser Seite wird erläutert, wie Google Chat-Apps Nachrichten senden können, um auf Nutzerinteraktionen zu antworten.

  • Kontaktformular über Slash-Befehl

    Eine Chat-App antwortet auf einen Slash-Befehl mit einer Textnachricht und einer Schaltfläche.

  • Kontaktformular in einem Dialogfeld

    Eine Chat-App öffnet ein Dialogfeld, in dem Nutzer Informationen eingeben können.

  • Kartenmitteilung mit Formulareingabe-Widgets

    Eine Chat-App sendet eine Nachricht mit Text und einer interaktiven Karte.

Vorbereitung

HTTP

Ein Google Workspace-Add‑on, das Google Chat erweitert. Führen Sie die HTTP-Kurzanleitung aus, um ein solches Add‑on zu erstellen.

Apps Script

Ein Google Workspace-Add‑on, das Google Chat erweitert. Führen Sie die Apps Script-Kurzanleitungaus, um ein solches Add‑on zu erstellen.

Nachricht entwerfen

Chat-Apps können in einer Nachricht Folgendes enthalten:

  • Text mit Hyperlinks, @-Erwähnungen und Emojis.
  • Eine oder mehrere Karten, die in einer Nachricht angezeigt oder als Dialogfeld in einem neuen Fenster geöffnet werden können.
  • Ein oder mehrere Zubehör-Widgets, also Schaltflächen, die nach Text oder Karten in einer Nachricht angezeigt werden.

Weitere Informationen zum Entwerfen von Nachrichten finden Sie in der folgenden Google Chat API-Dokumentation:

Mit Nach­richt antworten

Chat-Apps können mit einer Nachricht auf die folgenden Auslöser oder Interaktionen antworten:

  • Nachricht -Auslöser, z. B. wenn Nutzer eine Chat-App @erwähnen oder ihr eine Direktnachricht senden.
  • Zu Gruppenbereich hinzugefügt -Auslöser, z. B. wenn Nutzer die Chat-App im Google Workspace Marketplace installieren oder sie einem Gruppenbereich hinzufügen.
  • Schaltflächenklicks auf Karten in Nachrichten oder Dialogfeldern. Zum Beispiel, wenn Nutzer Informationen eingeben und auf „Senden“ klicken.

Andernfalls können Chat-Apps Nachrichten proaktiv senden, indem sie die Google Chat API aufrufen.

Wenn Sie mit einer Nachricht antworten möchten, geben Sie die Aktion DataActions mit einem CreateMessageAction-Objekt zurück:

{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
  "message": MESSAGE
}}}

Ersetzen Sie MESSAGE durch eine Message Ressource aus der Chat API. Weitere Informationen zu Aktionen finden Sie unter Chat-Aktionen.

Im folgenden Beispiel erstellt und sendet eine Chat-App eine Textnachricht, wenn sie einem Gruppenbereich hinzugefügt wird. Wenn Sie eine Textnachricht senden möchten, wenn ein Nutzer Ihre Chat-App einem Gruppenbereich hinzufügt, antwortet Ihre Chat-App auf den Auslöser Zu Gruppenbereich hinzugefügt , indem sie die Aktion DataActions zurückgibt:

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`.'
  }}}}};
}

Das Codebeispiel gibt die folgende Textnachricht zurück:

Beispiel für eine Onboarding-Nachricht

Weitere Beispiele für das Antworten mit einer Nachricht finden Sie in den folgenden Anleitungen:

Nachricht bearbeiten

Chat-Apps können auch Nachrichten bearbeiten, die sie senden. Zum Beispiel, um eine Nachricht zu aktualisieren, nachdem ein Nutzer ein Dialogfeld gesendet oder auf eine Schaltfläche in einer Nachricht geklickt hat.

Wenn Sie eine Google Chat-Nachricht bearbeiten möchten, geben Sie die Aktion DataActions mit einem UpdateMessageAction zurück, wie in folgendem Beispiel gezeigt:

{ "hostAppDataAction": { "chatDataAction": { "updateMessageAction": {
  "message": MESSAGE
}}}}

Ersetzen Sie MESSAGE durch eine Message Ressource aus der Chat API.

Weitere Informationen zu Aktionen finden Sie unter Chat-Aktionen.

Chat-Apps können auch eine Nachricht eines Nutzers bearbeiten, um eine Vorschau eines von ihm gesendeten Links zurückzugeben. Weitere Informationen finden Sie unter Vorschau von Links in Google Chat-Nachrichten.

Mit der Google Chat API auf Interaktionen antworten oder proaktive Nachrichten senden

Anstatt eine Add‑on-Aktion zurückzugeben, müssen Chat-Apps möglicherweise die Google Chat API verwenden, um auf eine Interaktion zu antworten. Chat-Apps müssen beispielsweise die Google Chat API aufrufen, um Folgendes zu tun:

  • Nachrichten nach Zeitplan oder zu Änderungen an externen Ressourcen senden. Zum Beispiel Benachrichtigungen zu einem neuen Problem oder Fall.
  • Mehr als 30 Sekunden nach der Interaktion antworten. Zum Beispiel, um nach Abschluss einer zeitaufwendigen Aufgabe mit einer Nachricht zu antworten.
  • Eine Nachricht außerhalb des Gruppenbereichs senden, in dem die Interaktion stattgefunden hat.
  • Eine Nachricht im Namen eines Google Chat-Nutzers senden.

Wenn Sie eine Nachricht mit der Chat API senden möchten, müssen Sie die Authentifizierung einrichten und die Methode create() für die Message-Ressource aufrufen. Eine Anleitung finden Sie unter Nachricht mit der Google Chat API senden.