Eine Nachricht auf der App-Startseite für eine Google Chat-App senden

Auf dieser Seite wird erläutert, wie Sie eine Nachricht zur App-Startseitenkarte für Ihre Chat-App erstellen und senden. Die App-Startseite ist eine anpassbare Kartennachricht, die eine Chat-App an einen Nutzer sendet, wenn dieser eine Direktnachricht mit der Chat-App öffnet.

App-Startseite mit zwei Nachrichten.

Beispielsweise können Sie die Nachricht der App-Startseite so konfigurieren, dass sie Tipps für die Interaktion mit der Chat-App mithilfe von Slash-Befehlen enthält. Für Endnutzer ist die App-Startseite in der Direktnachricht einer Chat-App nur verfügbar, wenn der App-Entwickler die Funktion aktiviert hat.


Mit dem Card Builder kannst du JSON-Kartennachrichten für Chat-Apps entwerfen und als Vorschau ansehen:

Den Card Builder öffnen

Voraussetzungen

Python

Apps Script

In der Google Cloud Console konfigurieren

Python

  1. Gehen Sie in der Google Cloud Console zu Menü > Weitere Produkte > Google Workspace > Produktbibliothek > Google Chat API.

    Zur Google Chat API

  2. Klicken Sie auf Verwalten und dann auf den Tab Konfiguration.

  3. Aktivieren Sie Support App-Startseite.

  4. Klicken Sie das Kästchen Support App-Startseite an.

  5. Geben Sie im Feld URL der App-Startseite eine URL ein. Dieser Wert ist normalerweise mit der URL der App-URL identisch. Diese URL wird für APP_HOME-Ereignisse aufgerufen.

  6. Klicken Sie auf Speichern.

Apps Script

  1. Gehen Sie in der Google Cloud Console zu Menü > Weitere Produkte > Google Workspace > Produktbibliothek > Google Chat API.

    Zur Google Chat API

  2. Klicken Sie auf Verwalten und dann auf den Tab Konfiguration.

  3. Klicken Sie das Kästchen Support App-Startseite an.

  4. Klicken Sie auf Speichern.

Chat-App konfigurieren

Konfigurieren Sie die Chat-App so, dass eine neue Kartennachricht an die App-Startseite gesendet wird.

Python

Wenn ein Nutzer eine Direktnachricht aus einer Chat-App öffnet, wird ein APP_HOME-Ereignis an Ihre Chat-App gesendet. Erhält eine Chat-App dieses Ereignis, wird eine JSON-Instanz von RenderActions mit der pushCard-Navigation zurückgegeben.

@app.route('/', methods=['POST'])
def on_event():
  event = request.get_json()
  chat = event.get('chat')
  if chat is not None:
    return handle_chat_event(event)

def handle_chat_event(event):
  if event['chat'].get('type') == 'APP_HOME':
    return get_app_home_card()

def get_app_home_card():
  return {
    "action": {
      "navigations": [
        {
          "pushCard": {
            "sections": [
              {
                "widgets": [
                  {
                    "buttonList": {
                      "buttons": [
                        {
                          "text": "Open documentation",
                          "onClick": {
                            "openLink": {
                              "url": "https://developers.google.com/chat"
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  }

Apps Script

In diesem Beispiel wird eine Kartennachricht durch Rückgabe von Karten-JSON gesendet. Sie können auch den Apps Script-Kartendienst verwenden.

Implementieren Sie eine onAppHome-Funktion, um eine JSON-Instanz von RenderActions mit der pushCard-Navigation zurückzugeben:

// "onAppHome" is the pre-defined name of the callback that the Chat servers
// execute.
function onAppHome() {
  return {
    action: {
      navigations: [
        {
          pushCard: getCard()
        }
      ]
    }
  };
}

function getCard() {
  return {
    sections: [
      {
        widgets: [
          {
            buttonList: {
              buttons: [
                {
                  text: "Open documentation",
                  onClick: {
                    openLink: {
                      url: "https://developers.google.com/chat"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

Nachricht der App-Startseite aktualisieren

Die Nachricht der App-Startseite kann aktualisiert werden, wenn ein Nutzer Informationen in einer Kartennachricht sendet oder ein Dialogfeld schließt. Die erste Nachricht der App-Startseite ist beispielsweise eine Willkommensnachricht, in der der Nutzer aufgefordert wird, ein Formular mit Informationen auszufüllen. Nachdem der Nutzer das Formular ausgefüllt hat, wird eine aktualisierte Nachricht für die App-Startseite gesendet. Das Update muss mit einer Instanz von RenderActions zurückgegeben werden, die eine updateCard-Navigation enthält.

Python

Bei HTTP-Apps ähnelt das Aktualisieren der Nachricht der App-Startseite der Nachricht Von Nutzern eingegebene Verarbeitungsinformationen. Es muss jedoch RenderActions zurückgegeben werden. invokedFunction steht für den Namen der aufgerufenen Funktion, die mit dem Card-Widget verknüpft ist. Weitere Informationen finden Sie unter CommonEventObject. Im folgenden Beispiel zeigt submitForm an, dass der Nutzer Formulardaten gesendet hat:

@app.route('/', methods=['POST'])
def on_event():
  event = request.get_json()
  chat = event.get('chat')
  if chat is not None:
    return handle_chat_event(event)

def handle_chat_event(event):
  if event['chat'].get('type') == 'SUBMIT_FORM':
    event_object = event.get('commonEventObject')
    if event_object is not None:
      // Forms
      if 'submitForm' == event_object.get('invokedFunction'):
        return {
          'render_actions': {
            'action': {
              'navigations': [{
                'updateCard': get_update_card()
              }]
            }
          }
        }

def get_update_card():
  return {
      "action": {
          "navigations": [{
              "pushCard": {
                  "sections": [{
                      "widgets": [{
                          "buttonList": {
                              "buttons": [{
                                  "text": "Open documentation",
                                  "onClick": {
                                      "openLink": {
                                          "url": "https://developers.google.com/chat"
                                      }
                                  },
                              }]
                          }
                      }]
                  }]
              }
          }]
      }
  }

Apps Script

In diesem Beispiel wird eine Kartennachricht durch Rückgabe von Karten-JSON gesendet. Sie können auch den Apps Script-Kartendienst verwenden.

// Called from elsewhere (i.e. on button press).
function updateAppHomeCard(event) {
  return {
    render_actions: {
      action: {
        navigations: [
          {
            updateCard: getCard()
          }
        ]
      }
    }
  }
}

function getCard() {
  return {
    sections: [
      {
        widgets: [
          {
            buttonList: {
              buttons: [
                {
                  text: "Open documentation",
                  onClick: {
                    openLink: {
                      url: "https://developers.google.com/chat"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

Beschränkungen

Im Allgemeinen ist navigation für Chat-Apps nicht verfügbar. Sie können keinen Kartenstapel zurückgeben. Für Chat-Apps sind nur pushCard (für die erste Antwort) und updateCard (für Updates) verfügbar.