In diesem Leitfaden wird beschrieben, wie Google Chat-Apps Informationen von Nutzern erfassen und verarbeiten können, indem Formulareingaben in kartenbasierten Oberflächen erstellt werden.
Chat-Apps fordern Informationen von Nutzern an, um Aktionen in oder außerhalb von Google Chat auszuführen, z. B. auf folgende Weise:
- Einstellungen konfigurieren Beispielsweise können Nutzer die Benachrichtigungseinstellungen anpassen oder die Chat-App konfigurieren und einem oder mehreren Gruppenbereichen hinzufügen.
- Informationen in anderen Google Workspace-Anwendungen erstellen oder aktualisieren Sie können Nutzern beispielsweise erlauben, einen Termin im Google Kalender zu erstellen.
- Nutzern den Zugriff auf Ressourcen in anderen Apps oder Webdiensten und deren Aktualisierung ermöglichen. Mit einer Chat-App können Nutzer beispielsweise den Status eines Support-Tickets direkt in einem Chatbereich aktualisieren.
Vorbereitung
HTTP
Eine Google Chat-App, die Nutzerinteraktionen empfängt und darauf reagiert. Führen Sie die HTTP-Kurzanleitung aus, um einen zu erstellen.
Apps Script
Eine Google Chat-App, die Nutzerinteraktionen empfängt und darauf reagiert. Führen Sie dazu die Apps Script-Kurzanleitung aus.
Formulare mit Karten erstellen
Um Informationen zu erfassen, entwerfen Chat-Apps Formulare und deren Eingaben und binden sie in Karten ein. Um Nutzern Karten anzuzeigen, können Chat-Apps die folgenden Chat-Oberflächen verwenden:
- Nachrichten, die eine oder mehrere Karten enthalten.
- Startseiten: Eine Karte, die auf dem Tab Startseite in Direktnachrichten mit der Chat-App angezeigt wird.
- Dialogfelder, d. h. Karten, die in einem neuen Fenster über Nachrichten und Startseiten geöffnet werden.
Chat-Apps können die Karten mit den folgenden Widgets erstellen:
Formulareingabe-Widgets, die Informationen von Nutzern anfordern. Optional können Sie Formulareingabe-Widgets eine Validierung hinzufügen, um sicherzustellen, dass Nutzer Informationen korrekt eingeben und formatieren. In Chat-Apps können die folgenden Formulareingabe-Widgets verwendet werden:
- Texteingaben (
textInput) für freies Format oder vorgeschlagenen Text. - Auswahleingaben (
selectionInput) sind auswählbare UI-Elemente wie Kästchen, Optionsfelder und Drop-down-Menüs. Auswahl-Eingabe-Widgets können auch Elemente aus Google Workspace-Daten (z. B. einem Chatbereich) oder einer dynamischen Datenquelle vorschlagen und einfügen. Weitere Informationen finden Sie in den folgenden Abschnitten: Drop-down-Menü hinzufügen und Menü mit Mehrfachauswahl hinzufügen. - Datum- und Uhrzeitauswahl (
dateTimePicker) für Datums- und Uhrzeiteinträge.
- Texteingaben (
Ein Button-Widget, mit dem Nutzer Werte senden können, die sie in die Karte eingegeben haben. Nachdem ein Nutzer auf die Schaltfläche geklickt hat, kann die Chat-App die erhaltenen Informationen verarbeiten.
Im folgenden Beispiel werden auf einer Karte Kontaktdaten mithilfe einer Texteingabe, einer Datumsauswahl und einer Auswahleingabe erfasst:
Weitere Beispiele für interaktive Widgets, mit denen Sie Informationen erfassen können, finden Sie unter Interaktive Karte oder Dialogfeld entwerfen.
Drop-down-Menü hinzufügen
Wenn Sie Auswahlelemente anpassen oder Nutzern die Möglichkeit geben möchten, ein einzelnes Element aus einer dynamischen Datenquelle auszuwählen, können Chat-Apps Drop-down-Menüs verwenden. Diese sind ein Typ von SelectionInput-Widget. Auf der folgenden Karte wird beispielsweise ein Drop-down-Menü angezeigt, in dem Nutzer dynamisch aus einer Liste von Kontakten auswählen können:
Sie können Elemente für ein Drop-down-Menü aus den folgenden Datenquellen füllen:
- Google Workspace-Daten, einschließlich Nutzer oder Chatbereiche.
- Externe Datenquellen, z. B. eine relationale Datenbank.
Elemente aus einer Google Workspace-Datenquelle einfügen
Wenn Sie Elemente aus Google Workspace-Datenquellen wie Google Workspace-Nutzern einfügen möchten, geben Sie das Feld platformDataSource in einem DataSourceConfig-Objekt an. Im Gegensatz zu anderen Eingabetypen für die Auswahl lassen Sie SelectionItem-Objekte weg, da diese Auswahlelemente dynamisch aus Google Workspace stammen.
Der folgende Code zeigt ein Drop-down-Menü mit Google Workspace-Nutzern:
JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "contacts",
"type": "DROPDOWN",
"label": "Select contact from organization",
"dataSourceConfigs": [
{
"platformDataSource": {
"commonDataSource": "USER"
},
"minCharactersTrigger": 1
}
]
}
}
]
}
]
}
Elemente aus einer externen Datenquelle einfügen
In Drop-down-Menüs können auch Elemente aus einer Drittanbieter- oder externen Datenquelle eingefügt werden. Wenn Sie eine externe Datenquelle verwenden möchten, geben Sie das Feld remoteDataSource in einem DataSourceConfig-Objekt an, das die Funktion enthält, die Elemente aus der Datenquelle abfragt und zurückgibt.
Wenn Sie die Anzahl der Anfragen an eine externe Datenquelle reduzieren möchten, können Sie vorgeschlagene Elemente einfügen, die im Drop-down-Menü angezeigt werden, bevor Nutzer etwas in das Menü eingeben. Wenn Sie vorgeschlagene Elemente aus einer externen Datenquelle einfügen möchten, geben Sie statische SelectionItem-Objekte an.
Der folgende Code zeigt ein Drop-down-Menü, das Elemente aus einer externen Datenquelle abfragt und füllt:
JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "crm_leads",
"type": "DROPDOWN",
"label": "Select CRM Lead",
"dataSourceConfigs": [
{
"remoteDataSource": {
"function": "getCrmLeads"
},
"minCharactersTrigger": 2
}
],
"items": [
{
"text": "Suggested Lead 1",
"value": "lead-1"
}
]
}
}
]
}
]
}
Ein vollständiges Beispiel für die Rückgabe vorgeschlagener Elemente finden Sie im Abschnitt Auswahlelemente vorschlagen.
Menü mit Mehrfachauswahl hinzufügen
Wenn Sie Auswahlelemente anpassen oder Nutzern die Möglichkeit geben möchten, Elemente aus einer dynamischen Datenquelle auszuwählen, können Chat-Apps Mehrfachauswahlmenüs verwenden, die eine Art SelectionInput-Widget sind. Auf der folgenden Karte wird beispielsweise ein Mehrfachauswahlmenü angezeigt, in dem Nutzer dynamisch aus einer Liste von Kontakten auswählen können:
Sie können Elemente für ein Menü mit Mehrfachauswahl aus den folgenden Datenquellen füllen:
- Google Workspace-Daten, einschließlich Nutzer oder Chatbereiche, in denen der Nutzer Mitglied ist. Im Menü werden nur Elemente aus derselben Google Workspace-Organisation angezeigt.
- Externe Datenquellen, z. B. eine relationale Datenbank. Sie können beispielsweise Menüs mit Mehrfachauswahl verwenden, um einem Nutzer die Auswahl aus einer Liste von Verkaufsleads aus einem CRM-System (Customer Relationship Management) zu ermöglichen.
Elemente aus einer Google Workspace-Datenquelle einfügen
Wenn Sie Google Workspace-Datenquellen verwenden möchten, geben Sie das Feld platformDataSource im Widget SelectionInput an. Im Gegensatz zu anderen Eingabetypen für die Auswahl lassen Sie SelectionItem-Objekte weg, da diese Auswahlelemente dynamisch aus Google Workspace stammen.
Der folgende Code zeigt ein Menü zur Mehrfachauswahl von Google Workspace-Nutzern.
Um Nutzer hinzuzufügen, wird commonDataSource in der Auswahleingabe auf USER gesetzt:
JSON
{
"selectionInput": {
"name": "contacts",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 5,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"commonDataSource": "USER"
}
}
}
Der folgende Code zeigt ein Mehrfachauswahlmenü für Chatbereiche. Um Leerzeichen zu füllen, wird in der Auswahleingabe das Feld hostAppDataSource angegeben. Im Mehrfachauswahlmenü wird außerdem defaultToCurrentSpace auf true gesetzt, wodurch der aktuelle Space zur Standardauswahl im Menü wird:
JSON
{
"selectionInput": {
"name": "spaces",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 3,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"hostAppDataSource": {
"chatDataSource": {
"spaceDataSource": {
"defaultToCurrentSpace": true
}
}
}
}
}
}
Elemente aus einer externen Datenquelle einfügen
Menüs mit Mehrfachauswahl können auch Elemente aus einer Drittanbieter- oder externen Datenquelle enthalten. Wenn Sie eine externe Datenquelle verwenden möchten, geben Sie das Feld externalDataSource im Widget SelectionInput an, das die Funktion enthält, die Elemente aus der Datenquelle abfragt und zurückgibt.
Wenn Sie die Anzahl der Anfragen an eine externe Datenquelle reduzieren möchten, können Sie vorgeschlagene Elemente einfügen, die im Menü für die Mehrfachauswahl angezeigt werden, bevor Nutzer etwas eingeben. Sie können beispielsweise die zuletzt gesuchten Kontakte für den Nutzer ausfüllen. Wenn Sie vorgeschlagene Elemente aus einer externen Datenquelle einfügen möchten, geben Sie statische SelectionItem-Objekte an.
Das folgende Codebeispiel zeigt ein Menü mit Mehrfachauswahl, das Elemente aus einer externen Datenquelle abfragt und einfügt:
Node.js
Ersetzen Sie FUNCTION_URL durch den HTTP-Endpunkt, der die externe Datenquelle abfragt.
Python
Ersetzen Sie FUNCTION_URL durch den HTTP-Endpunkt, der die externe Datenquelle abfragt.
Java
Ersetzen Sie FUNCTION_URL durch den HTTP-Endpunkt, der die externe Datenquelle abfragt.
Apps Script
In diesem Beispiel wird eine Kartennachricht gesendet, indem Karten-JSON zurückgegeben wird. Sie können auch den Apps Script-Kartendienst verwenden.
Ein vollständiges Beispiel für die Rückgabe vorgeschlagener Elemente finden Sie im Abschnitt Auswahlelemente vorschlagen.
Daten von interaktiven Widgets empfangen
Wenn Nutzer auf eine Schaltfläche klicken, wird die Aktion der Chat-App mit Informationen zur Interaktion ausgelöst. In der commonEventObject der Ereignisnutzlast enthält das Objekt formInputs alle Werte, die der Nutzer eingibt.
Sie können die Werte aus dem Objekt event.commonEventObject.formInputs.WIDGET_NAME abrufen, wobei WIDGET_NAME das Feld name ist, das Sie für das Widget angegeben haben.
Die Werte werden als bestimmter Datentyp für das Widget zurückgegeben.
Im Folgenden sehen Sie einen Teil eines Ereignisobjekts, in dem ein Nutzer Werte für jedes Widget eingegeben hat:
{
"commonEventObject": { "formInputs": {
"contactName": { "stringInputs": {
"value": ["Kai 0"]
}},
"contactBirthdate": { "dateInput": {
"msSinceEpoch": 1000425600000
}},
"contactType": { "stringInputs": {
"value": ["Personal"]
}}
}}
}
Um die Daten zu empfangen, verarbeitet Ihre Chat-App das Ereignisobjekt, um die Werte abzurufen, die Nutzer in Widgets eingeben. In der folgenden Tabelle sehen Sie, wie Sie den Wert für ein bestimmtes Formulareingabe-Widget abrufen. In der Tabelle wird für jedes Widget der Datentyp, den das Widget akzeptiert, der Speicherort des Werts im Ereignisobjekt und ein Beispielwert angezeigt.
| Widget für Formulareingabe | Art der Eingabedaten | Eingabewert aus dem Ereignisobjekt | Beispielwert |
|---|---|---|---|
textInput |
stringInputs |
event.commonEventObject.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
So rufen Sie den ersten oder einzigen Wert ab: event.commonEventObject.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker, das nur Datumsangaben akzeptiert. |
dateInput |
event.commonEventObject.formInputs.contactBirthdate.dateInput.msSinceEpoch. |
1000425600000 |
Nachdem die Chat-App Daten empfangen hat, kann sie Folgendes tun:
- Bei Karten, die ein Mehrfachauswahlmenü enthalten, können Sie Elemente basierend auf den Eingaben des Nutzers im Menü vorschlagen oder einfügen.
- Übertragen Sie die Daten auf eine andere Karte, damit der Nutzer seine Informationen überprüfen oder mit dem nächsten Abschnitt des Formulars fortfahren kann.
- Antworten Sie dem Nutzer, um zu bestätigen, dass er das Formular erfolgreich ausgefüllt hat.
Auswahlelemente vorschlagen
Wenn eine Karte ein Mehrfachauswahlmenü oder ein Drop-down-Menü enthält, das Elemente aus einer externen Datenquelle enthält, kann die Chat-App vorgeschlagene Elemente basierend auf den Eingaben der Nutzer in das Menü zurückgeben. Wenn ein Nutzer beispielsweise Atl für ein Menü eingibt, das Städte in den USA enthält, kann Ihre Chat-App Atlanta automatisch vorschlagen, bevor der Nutzer die Eingabe beendet hat. Die Chat-App kann bis zu 100 Elemente vorschlagen.
Wenn Sie Elemente in einer Auswahleingabe vorschlagen und dynamisch füllen möchten, muss das Widget SelectionInput auf der Karte eine Funktion angeben, die die externe Datenquelle abfragt. Bei Menüs mit Mehrfachauswahl geben Sie das Feld externalDataSource an. Bei Drop-down-Menüs geben Sie das Feld remoteDataSource in einem DataSourceConfig-Objekt an.
Sie können auch die Anzahl der Zeichen konfigurieren, die ein Nutzer eingibt, bevor das Menü Vorschläge zurückgibt. Legen Sie für Menüs mit Mehrfachauswahl das Feld multiSelectMinQueryLength fest. Legen Sie für Drop-down-Menüs das Feld min_characters_trigger in DataSourceConfig fest.
Damit die Funktion vorgeschlagene Artikel zurückgibt, muss sie Folgendes tun:
- Ein Ereignisobjekt verarbeiten, das die Chat-App empfängt, wenn Nutzer etwas in das Menü eingeben.
- Rufen Sie aus dem Ereignisobjekt den Wert ab, den der Nutzer eingibt. Dieser wird im Feld
event.commonEventObject.parameters["autocomplete_widget_query"]dargestellt. - Fragen Sie die Datenquelle mit dem vom Nutzer eingegebenen Wert ab, um eine oder mehrere
SelectionItemszu erhalten, die dem Nutzer vorgeschlagen werden sollen. - Geben Sie vorgeschlagene Elemente zurück, indem Sie die Aktion
RenderActionsmit einemmodifyCard-Objekt zurückgeben.
Das folgende Codebeispiel zeigt, wie eine Chat-App Elemente im Mehrfachauswahlmenü auf einer Karte dynamisch vorschlägt. Wenn ein Nutzer etwas in das Menü eingibt, fragt die im Feld externalDataSource des Widgets angegebene Funktion oder der Endpunkt eine externe Datenquelle ab und schlägt Elemente vor, die der Nutzer auswählen kann.
Node.js
Ersetzen Sie FUNCTION_URL durch den HTTP-Endpunkt, der die externe Datenquelle abfragt.
Python
Ersetzen Sie FUNCTION_URL durch den HTTP-Endpunkt, der die externe Datenquelle abfragt.
Java
Ersetzen Sie FUNCTION_URL durch den HTTP-Endpunkt, der die externe Datenquelle abfragt.
Apps Script
In diesem Beispiel wird eine Kartennachricht gesendet, indem Karten-JSON zurückgegeben wird. Sie können auch den Apps Script-Kartendienst verwenden.
Daten auf eine andere Karte übertragen
Nachdem ein Nutzer Informationen von einer Karte gesendet hat, müssen Sie möglicherweise zusätzliche Karten zurückgeben, um Folgendes zu tun:
- Helfen Sie Nutzern, längere Formulare auszufüllen, indem Sie separate Abschnitte erstellen.
- Nutzer sollten die Möglichkeit haben, die Informationen auf der ersten Karte zu prüfen und zu bestätigen, damit sie ihre Antworten vor dem Senden noch einmal durchgehen können.
- Die restlichen Teile des Formulars werden dynamisch ausgefüllt. Wenn Nutzer beispielsweise aufgefordert werden sollen, einen Termin zu vereinbaren, könnte eine Chat-App eine erste Karte anzeigen, auf der nach dem Grund für den Termin gefragt wird. Anschließend wird eine weitere Karte mit verfügbaren Zeiten basierend auf dem Termintyp angezeigt.
Wenn Sie die Dateneingabe von der ursprünglichen Karte übertragen möchten, können Sie das button-Widget mit actionParameters erstellen, die den name des Widgets und den vom Nutzer eingegebenen Wert enthalten, wie im folgenden Beispiel gezeigt:
Node.js
Ersetzen Sie FUNCTION_URL durch den HTTP-Endpunkt, der die Schaltflächenklicks verarbeitet.
Python
Ersetzen Sie FUNCTION_URL durch den HTTP-Endpunkt, der die Schaltflächenklicks verarbeitet.
Java
Ersetzen Sie FUNCTION_URL durch den HTTP-Endpunkt, der die Schaltflächenklicks verarbeitet.
Apps Script
In diesem Beispiel wird eine Kartennachricht gesendet, indem Karten-JSON zurückgegeben wird. Sie können auch den Apps Script-Kartendienst verwenden.
Wenn ein Nutzer auf die Schaltfläche klickt, empfängt Ihre Chat-App ein Ereignisobjekt, aus dem Sie Daten abrufen können.
Auf eine Formulareinreichung antworten
Nachdem die Chat-App die Daten aus einer Kartennachricht oder einem Dialogfeld empfangen hat, bestätigt sie entweder den Empfang oder gibt einen Fehler zurück.
Im folgenden Beispiel sendet eine Chat-App eine Textnachricht, um zu bestätigen, dass sie ein Formular, das über eine Kartennachricht gesendet wurde, erfolgreich empfangen hat.
Node.js
Python
Java
Apps Script
In diesem Beispiel wird eine Kartennachricht gesendet, indem Karten-JSON zurückgegeben wird. Sie können auch den Apps Script-Kartendienst verwenden.
Wenn Sie ein Dialogfeld verarbeiten und schließen möchten, geben Sie ein RenderActions-Objekt zurück, das angibt, ob Sie eine Bestätigungsnachricht senden, die ursprüngliche Nachricht oder Karte aktualisieren oder einfach das Dialogfeld schließen möchten. Eine Anleitung finden Sie unter Dialogfeld schließen.
Fehlerbehebung
In diesem Abschnitt finden Sie Schritte zur Fehlerbehebung für bestimmte Fehlercodes und Laufzeitverhalten bei der Interaktion mit Dialogfeldern in Google Chat.
Bei Dialoginteraktionen wird „Unbekannter Fehler beim Aufrufen des Add-ons“ zurückgegeben.
Wenn Sie bei der Interaktion mit einem Dialogfeld Fehlerprotokolle mit der Meldung „Unbekannter Fehler beim Aufrufen des Add-ons“ und dem Code 13 sehen, deutet dies in der Regel auf einen internen Fehler hin oder darauf, dass der HTTP-Endpunkt der Chat-App die Anfrage nicht verarbeiten oder keine gültige Antwort zurückgeben konnte.
So beheben Sie diesen Fehler:
- Prüfen Sie die Logs Ihres HTTP-Endpunkts auf unbehandelte Ausnahmen oder Abstürze.
- Prüfen Sie, ob Ihr Endpunkt innerhalb von 30 Sekunden auf Anfragen antwortet. Wenn die Ausführung des Endpunkts länger als 30 Sekunden dauert, kann Google Chat die Antwort nicht verarbeiten und die Interaktion schlägt fehl. Weitere Informationen finden Sie unter Ratenbegrenzungen und Best Practices.
- Achten Sie darauf, dass Ihr Endpunkt eine gültige Antwort zurückgibt. Bei Dialogeinreichungen muss der Endpunkt ein
RenderActions-Objekt im korrekten JSON-Format zurückgeben. Wenn die Antwort fehlerhaft ist oder erforderliche Felder fehlen, kann die Dialoginteraktion fehlschlagen.
Wenn eine Google Chat-App oder Karte einen Fehler zurückgibt, wird auf der Chat-Oberfläche die Meldung „Ein Fehler ist aufgetreten“ angezeigt. oder „Ihre Anfrage kann nicht verarbeitet werden.“ Manchmal wird in der Chat-Benutzeroberfläche keine Fehlermeldung angezeigt, aber die Chat-App oder -Karte liefert ein unerwartetes Ergebnis. Beispielsweise wird eine Kartennachricht möglicherweise nicht angezeigt.
Auch wenn in der Chat-Benutzeroberfläche möglicherweise keine Fehlermeldung angezeigt wird, sind beschreibende Fehlermeldungen und Protokolldaten verfügbar, mit denen Sie Fehler beheben können, wenn das Fehler-Logging für Chat-Apps aktiviert ist. Hilfe zum Anzeigen, Debuggen und Beheben von Fehlern finden Sie unter Google Chat-Fehler beheben.
Weitere Informationen
- Beispiel für Contact Manager ansehen: Dies ist eine Chat-App, die Nutzer auffordert, ein Kontaktformular aus Kartennachrichten und Dialogfeldern auszufüllen.
- Interaktive Dialogfelder öffnen
Chat-Apps, die keine Add-ons sind: Formulardaten lesen, die von Nutzern auf Karten eingegeben wurden
Die folgende Dokumentation gilt für Chat-Apps, die keine Google Workspace-Add‑ons sind. Informationen zum Migrieren einer Chat-App, die kein Add‑on ist, finden Sie unter Google Chat-App in ein Google Workspace-Add‑on umwandeln.
Formulare mit Karten erstellen
Ein Beispiel für eine Chat-App, die kein Add-on ist und ein Kontaktformular mit einer Texteingabe, einer Datum/Uhrzeit-Auswahl und einer Auswahleingabe verwendet, finden Sie im folgenden Code:
Node.js
Python
Java
Apps Script
Daten von interaktiven Widgets empfangen
Wenn Nutzer auf eine Schaltfläche klicken, empfangen Chat-Apps, die keine Add-ons sind, ein Interaktionsereignis, das vom Standort der Schaltfläche abhängt:
Wenn sich die Schaltfläche in einer Nachricht oder einem Dialogfeld befindet, erhalten Chat-Apps, die keine Add-ons sind, ein
CARD_CLICKED-Interaktionsereignis mit Informationen zur Interaktion. Die Nutzlast vonCARD_CLICKED-Interaktionsereignissen enthält eincommon.formInputs-Objekt (event.common.formInputs) mit allen Werten, die der Nutzer eingibt.Sie können die Werte aus dem Objekt
common.formInputs.WIDGET_NAMEabrufen, wobei WIDGET_NAME das Feldnameist, das Sie für das Widget angegeben haben. Die Werte werden als bestimmter Datentyp für das Widget zurückgegeben (dargestellt alsInputs-Objekt).Im Folgenden sehen Sie einen Teil eines
CARD_CLICKED-Interaktionsereignisses, bei dem ein Nutzer Werte für jedes Widget eingegeben hat:HTTP
{ "type": "CARD_CLICKED", "common": { "formInputs": { "contactName": { "stringInputs": { "value": ["Kai 0"] }}, "contactBirthdate": { "dateInput": { "msSinceEpoch": 1000425600000 }}, "contactType": { "stringInputs": { "value": ["Personal"] }} }} }Apps Script
{ "type": "CARD_CLICKED", "common": { "formInputs": { "contactName": { "": { "stringInputs": { "value": ["Kai 0"] }}}, "contactBirthdate": { "": { "dateInput": { "msSinceEpoch": 1000425600000 }}}, "contactType": { "": { "stringInputs": { "value": ["Personal"] }}} }} }Wenn sich die Schaltfläche auf einer Startseite befindet, empfangen Chat-Apps, die keine Add-ons sind, ein
SUBMIT_FORM-Interaktionsereignis. Die Nutzlast des Interaktionsereignisses enthält eincommonEventObject.formInputs-Objekt (event.commonEventObject.formInputs) mit allen Werten, die der Nutzer eingibt.Sie können die Werte aus dem Objekt
commonEventObject.formInputs.WIDGET_NAMEabrufen, wobei WIDGET_NAME das Feldnameist, das Sie für das Widget angegeben haben. Die Werte werden als bestimmter Datentyp für das Widget zurückgegeben (dargestellt alsInputs-Objekt).Im Folgenden sehen Sie einen Teil eines
SUBMIT_FORM-Interaktionsereignisses, bei dem ein Nutzer Werte für jedes Widget eingegeben hat:HTTP
{ "type": "SUBMIT_FORM", "commonEventObject": { "formInputs": { "contactName": { "stringInputs": { "value": ["Kai 0"] }}, "contactBirthdate": { "dateInput": { "msSinceEpoch": 1000425600000 }}, "contactType": { "stringInputs": { "value": ["Personal"] }} }} }Apps Script
{ "type": "SUBMIT_FORM", "commonEventObject": { "formInputs": { "contactName": { "": { "stringInputs": { "value": ["Kai 0"] }}}, "contactBirthdate": { "": { "dateInput": { "msSinceEpoch": 1000425600000 }}}, "contactType": { "": { "stringInputs": { "value": ["Personal"] }}} }} }
Um die Daten zu empfangen, verarbeitet eine Chat-App, die kein Add-on ist, das Interaktionsereignis, um die Werte abzurufen, die Nutzer in Widgets eingeben. In der folgenden Tabelle sehen Sie, wie Sie den Wert für ein bestimmtes Formulareingabe-Widget abrufen. In der Tabelle sehen Sie für jedes Widget den Datentyp, den das Widget akzeptiert, wo der Wert im Interaktionsereignis gespeichert wird, und einen Beispielwert.
| Widget für Formulareingabe | Art der Eingabedaten | Eingabewert aus dem Interaktionsereignis | Beispielwert |
|---|---|---|---|
textInput |
stringInputs |
event.common.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
So rufen Sie den ersten oder einzigen Wert ab: event.common.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker, das nur Datumsangaben akzeptiert. |
dateInput |
event.common.formInputs.contactBirthdate.dateInput.msSinceEpoch. |
1000425600000 |
Daten auf eine andere Karte übertragen
Wenn Sie die Dateneingabe von der ursprünglichen Karte in einer Chat-App, die kein Add-on ist, übertragen möchten, erstellen Sie das button-Widget mit actionParameters, die die name des Widgets und den vom Nutzer eingegebenen Wert enthalten, wie im folgenden Beispiel gezeigt:
Node.js
Python
Java
Apps Script
Wenn ein Nutzer auf die Schaltfläche klickt, empfängt die Chat-App, die kein Add-on ist, ein CARD_CLICKED-Interaktionsereignis, von dem Sie Daten empfangen können.
Auf eine Formulareinreichung antworten
Im folgenden Beispiel sendet eine Chat-App, die kein Add-on ist, eine Textnachricht, um zu bestätigen, dass sie ein Formular, das über ein Dialogfeld oder eine Kartennachricht gesendet wurde, erfolgreich empfangen hat:
Node.js
Python
Java
Apps Script
Wenn Sie ein Dialogfeld in einer Chat-App, die kein Add-on ist, verarbeiten und schließen möchten, geben Sie ein ActionResponse-Objekt zurück, das angibt, ob Sie eine Bestätigungsnachricht senden, die ursprüngliche Nachricht oder Karte aktualisieren oder einfach das Dialogfeld schließen möchten. Eine Anleitung finden Sie unter Dialogfeld schließen.