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 er eine Direktnachricht mit der Chat-App öffnet. Sie können beispielsweise die Nachricht auf der Startseite der App 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 Karten entwerfen und sie dir 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 die Chat-App gesendet. Erhält eine App dieses Ereignis, wird eine JSON-Instanz von RenderActions mit der push_card-Navigation zurückgegeben.

Das folgende Beispiel zeigt ein Ereignis:

@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 "Card v2" representing App Home.

Das folgende Beispiel zeigt eine Karte, die so konfiguriert ist, dass sie einen Schaltflächenlink zur Dokumentation enthält:

{
  action: {
    navigations: [
      {
        push_card: {
          sections: [
            {
              widgets: [
                {
                  buttonList: {
                    buttons: [
                      {
                        text: "Open documentation",
                        onClick: {
                          openLink: {
                            url: "https://developers.google.com/chat"
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      }
    ]
  }
}

Apps Script

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

// "onAppHome" is the pre-defined name of the callback that the Chat servers
// execute.
function onAppHome() {
  return {
    action: {
      navigations: [
        {
          push_card: 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 update_card-Navigation enthält.

Python

Bei HTTP-Apps ähnelt das Aktualisieren der Nachricht der App-Startseitenkarte der 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': [{
                'update_card': get_update_card
              }]
            }
          }
        }

def get_update_card:
  // Return "Card v2" representing App Home.
  ...

Apps Script

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

function getCard() {
  // Return "Card v2" representing App Home.
  ...
}