Nachrichten in Google Chat

Auf dieser Seite werden die Unterschiede zwischen SMS- und Kartennachrichten erläutert.

Wenn Chat-Apps Textnachrichten senden, um grundlegende Informationen zu vermitteln, werden die Nachrichten inline angezeigt, genau wie andere Nutzer in Google Chat Nachrichten schreiben. Chat-Apps können Karten verwenden, um Nachrichten zu erstellen, die mehr als Text enthalten, oder um Nachrichten zu erstellen, mit denen Nutzer interagieren können. Chat-Apps können auch eine SMS mit einer Karte anhängen. Chat-Apps können auch Karten erstellen, die in einem neuen Fenster als Dialogfelder geöffnet werden, um Nutzer aufzufordern, mehrstufige Prozesse wie das Ausfüllen eines Formulars abzuschließen.

Aufbau einer SMS

In der Google Chat API werden Nachrichten als JSON-Objekte dargestellt. Innerhalb einer Nachricht wird eine Textnachricht als text-Objekt dargestellt.

Im folgenden Beispiel erstellt eine Chat-App in einem Gruppenbereich eine Textnachricht für ein Team von Softwareentwicklern, in der Code eingefroren wird:

{
  "text": "Attention <users/all>: Code freeze starts at `11:59 am` Pacific Standard Time! If you need a little more time, type `/moreTime` and I'll push the code freeze back one hour."
}

Die JSON-Datei gibt die folgende Meldung zurück:

Beispiel für eine Textnachricht in Google Chat, in der das Einfrieren von Code angekündigt wird.

Aufbau einer Kartennachricht

In der Google Chat API werden Nachrichten als JSON-Objekte dargestellt. In einer Nachricht wird eine Karte als cardsV2-Array dargestellt und besteht aus Folgendem:

  • Ein oder mehrere CardWithId-Objekte.
  • Ein cardId, mit dem die Karte und der Bereich innerhalb einer bestimmten Nachricht identifiziert werden. Infokarten in verschiedenen Nachrichten können dieselbe ID haben.
  • Ein card-Objekt, das Folgendes umfasst:

    • Ein header-Objekt, mit dem Dinge wie Titel, Untertitel und Avatarbild angegeben werden.
    • Ein oder mehrere section-Objekte, die jeweils mindestens ein Widget enthalten.
    • Ein oder mehrere widget-Objekte. Jedes Widget ist ein zusammengesetztes Objekt, das Text, Bilder, Schaltflächen und andere Objekttypen darstellen kann.

Die folgende Kartennachricht enthält beispielsweise die Objekte header, section und widget:

Eine Chat-App, die mithilfe einer Kartennachricht eine Umfrage in einem Chatbereich ausführt

Der folgende Code stellt den JSON-Code der Kartennachricht dar:

JSON

{
  "cardsV2": [
    {
      "cardId": "unique-card-id",
      "card": {
        "header": {
          "title": "Sasha",
          "subtitle": "Software Engineer",
          "imageUrl": "https://developers.google.com/chat/images/quickstart-app-avatar.png",
          "imageType": "CIRCLE",
          "imageAltText": "Avatar for Sasha"
        },
        "sections": [
          {
            "header": "Contact Info",
            "collapsible": true,
            "uncollapsibleWidgetsCount": 1,
            "widgets": [
              {
                "decoratedText": {
                  "startIcon": {
                    "knownIcon": "EMAIL"
                  },
                  "text": "sasha@example.com"
                }
              },
              {
                "decoratedText": {
                  "startIcon": {
                    "knownIcon": "PERSON"
                  },
                  "text": "<font color=\"#80e27e\">Online</font>"
                }
              },
              {
                "decoratedText": {
                  "startIcon": {
                    "knownIcon": "PHONE"
                  },
                  "text": "+1 (555) 555-1234"
                }
              },
              {
                "buttonList": {
                  "buttons": [
                    {
                      "text": "Share",
                      "onClick": {
                        "openLink": {
                          "url": "https://example.com/share"
                        }
                      }
                    },
                    {
                      "text": "Edit",
                      "onClick": {
                        "action": {
                          "function": "goToView",
                          "parameters": [
                            {
                              "key": "viewType",
                              "value": "EDIT"
                            }
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            ]
          }
        ]
      }
    }
  ]
}