Nachrichtenmodell

Das SDK verwendet ein konsistentes, typisiertes Nachrichtenmodell für den gesamten Datenverkehr. Das Verständnis der Envelope- und Payload-Typen ist wichtig für Headless-Integrationen, Delegierte, benutzerdefiniertes Rendering und Tests. Alle Unterhaltungselemente sind Nachrichten mit einem Standard-Envelope:

{
  "messagePayload": { /* see types below */ },
  "userId": "guest"
}
  • messagePayload.type
    bestimmt die konkrete Nutzlastform.
  • Benutzernachrichten werden vom Client initiiert. Antwortnachrichten stammen aus dem Skill oder dem Agent.

Basistypen

Hier sehen Sie die Basistypen, die in allen Nachrichten verwendet werden, die vom Benutzer an den Skill und umgekehrt gesendet werden. Sie sind die Bausteine aller Nachrichten.
  • Maßnahme: Varianten umfassen call, client, location, popup, postback, share, submitForm, url
  • Anhang: audio, file, image, video
  • Karte: Titel: Beschreibung, imageUrl, actions
  • Speicherort: latitude, longitude, optional title/url
  • Stimme: text, longText, soundUrl
  • Feld: schreibgeschützt (link, text, media, action) und bearbeitbar (textInput, numberInput, datePicker, timePicker, singleSelect, multiSelect, toggle))
  • SelectFieldOption: label, value
  • TableHeading
  • TableRow
  • Form
  • FormRow
  • FormColumn
  • PaginationInfo
  • EventContextProperties

Payload-Typen für Benutzernachrichten

  • Text
    { "type": "text", "text": "Order Pizza" }
    
  • Anhang
  • {
      "type": "attachment",
      "attachment": { "type": "image", "URL": "https://..." }
    }
    
  • Standort
    { "type": "location", "location": { "latitude": 45.9, "longitude": 132.6 } }
    
  • Postback
    {
      "type": "postback",
      "text": "Small",
      "postback": {
        "variables": { "pizza": "Small" },
        "system.botId": "....",
        "system.state": "orderPizza"
      }
    }
    
  • Eingehendes Ereignis
    {
      "type": "inboundEvent",
      "eventType": "com.pizzastore.pizza.orderserved",
      "eventVersion": "1.0",
      "eventData": { "size": "Medium", "type": "Cheese" },
      "contextProperties": { "id": "6ce23f...", "source": "pizza/service" }
    }
    
  • Formularweiterleitung
    {
      "type": "formSubmission",
      "submittedFields": { "Subject": "Expense", "Amount": 6 },
      "partialSubmitField": "Attendees",
      "postback": { "system.state": "editFormMapVar" }
    }
    

Antwortmeldungen

Zu den Antwort-Payloads von Skill/Agent gehören:
  • Text
    { "type": "text", "text": "What do you want to do?" }
    
  • Anhang
    {
      "type": "attachment",
      "attachment": { "type": "file", "url": "https://..." }
    }
    
  • Karte
    {
      "type": "card",
      "layout": "horizontal",
      "cards": [{ "title": "Hawaiian Pizza", "actions": [/*...*/] }]
    }
    
  • Befehl
    { "type": "command", "command": "someCommand", "properties": { "k": "v" } }
    
  • Fehler
    { "type": "error", "errorMessage": "Details...", "error": "..." }
    
  • Anwendungskontextbefehl ausführen
    {
      "type": "executeApplicationActionCommand",
      "actionType": "navigate",
      "command": "executeApplicationAction",
      "context": "appName",
      "properties": { "route": "/home" }
    }
    
  • Feedback (Stars)
    {
      "type": "text",
      "text": "How would you like to rate us?",
      "channelExtensions": { "displayType": "stars" },
      "actions": [/* star postbacks */]
    }
    
  • Standort
    { "type": "location", "location": { "latitude": 37.53, "longitude": -122.26 } }
    
  • Ausgehendes Ereignis
    {
      "type": "outboundEvent",
      "eventType": "com.pizzastore.pizza.ordercreated",
      "eventVersion": "1.0",
      "eventData": { "size": "Medium" }
    }
    
  • Rohdaten
    { "type": "raw", "payload": { /* channel specific */ } }
    
  • Session geschlossen
    { "type": "sessionClosed" }
    
  • Textstream
    {
      "type": "texStream",
      "streamId": "123",
      "streamState": "running",
      "text": "partial chunk",
      "aggregateText": "accumulated text so far"
    }
    
  • Edit‑Form unterstützt replaceMessage über channelExtensions.

Aktion

Eine Aktion steht für ein Element, das der Benutzer auswählen kann.
Name Beschreibung Typ Erforderlich?
type Aktionstyp Zeichenfolge Ja
label Der beschreibende Labeltext für die Aktion. Zeichenfolge Mindestens ein label- oder imageUrl-Wert muss angegeben werden.
imageUrl Das Bild für die Aktion Zeichenfolge Mindestens eine einzelne label- oder imageUrl-Eigenschaft muss enthalten sein.
style Der Rendering-Stil der Schaltfläche "primary", "danger", "default" Nein
displayType Das Rendering für den Typ des Aktionselements (Schaltfläche, Link oder Symbol) "button", "link", "icon" Nein
channelExtensions Die der Aktion zugeordneten kanalspezifischen Erweiterungseigenschaften JSONObject Nein

CallAction

Fordert den Client an, eine angegebene Telefonnummer im Namen des Benutzers anzurufen.
Name Beschreibung Typ Erforderlich?
type Aktionstyp "call" Ja
phoneNumber Die Telefonnummer, die angerufen werden soll Zeichenfolge Ja
Beispiel:
{
    "type": "call",
    "label": "Call Support",
    "imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
    "phoneNumber": "18005555555"
}

LocationAction

Fordert den Client an, den Standort des Benutzers abzufragen.
Name Beschreibung Typ Erforderlich?
type Aktionstyp "location" Ja
Beispiel:
{
    "type": "location",
    "label": "Share location",
    "imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}

PopupAction

Mit dieser Aktion wird ein Popup-Fenster geöffnet, nachdem Benutzer eine Klickaktion für ein Element ausgeführt haben. PopupAction verwendet die Eigenschaften Action zusammen mit ihren eigenen:
Name Beschreibung Typ Erforderlich?
type Aktionstyp "popup" Ja
popupContent Der Inhalt, der im Popup-Fenster angezeigt wird. Die Nachrichten-Payload (siehe folgendes JSON-Beispiel) Ja
{
    "type": "popup",
    "label": "Give Feedback",
    "popupContent": {
        "formRows": [
            {
                "columns": [
                    {
                        "width": "stretch",
                        "fields": [
                            {
                                "displayType": "text",
                                "label": "What was the issue with this response?"
                            },
                            {
                                "displayType": "multiSelect",
                                "options": [
                                    {
                                        "label": "Inaccurate",
                                        "value": "inaccurate"
                                    },
                                    {
                                        "label": "Inappropriate",
                                        "value": "inappropriate"
                                    }
                                ],
                                "id": "system_feedback_reasons",
                                "required": true
                            },
                            {
                                "displayType": "textInput",
                                "id": "system_feedback_comments",
                                "placeholder": "Additional feedback"
                            }
                        ]
                    }
                ]
            },
            {
                "columns": [
                    {
                        "fields": [
                            {
                                "displayType": "action",
                                "action": {
                                    "postback": {
                                        "rating": "negative",
                                        "action": "cancel",
                                    },
                                    "label": "Cancel",
                                    "type": "postback"
                                },
                            }
                        ]
                    },
                    {
                        "fields": [
                            {
                                "displayType": "action",
                                "action": {
                                    "postback": {
                                        "rating": "negative",
                                        "system.state": "invokeLLM"
                                    },
                                    "label": "Submit Feedback",
                                    "type": "submitForm"
                                },
                            }
                        ]
                    }
                ]
            }
        ],
        "type": "editForm",
        "title": "Give your feedback",
        "formColumns": 1,
    }
}

PostbackAction

Sendet einen vordefinierten Postback an den Skill, wenn der Benutzer eine Aktion auswählt.
Name Beschreibung Typ Erforderlich?
type Aktionstyp "postback" Ja
postback Der Postback, der zurückgegeben wird, wenn der Benutzer eine Aktion auswählt. Zeichenfolge oder JSON-Objekt Ja
Beispiel:
{
    "type": "postback",
    "label": "Large Pizza",
    "imageUrl": "https://example.com/images/gallery/locations/11.jpg",
    "postback": {
        "state": "askSize",
        "action": "getCrust"
    }
}

ShareAction

Fordert den Client an, ein Sharing-Dialogfeld für den Benutzer zu öffnen.
Name Beschreibung Typ Erforderlich?
type Aktionstyp "share" Ja

SubmitFormAction

Mit dieser Aktion wird ein Eingabeformular an den Skill weitergeleitet, wenn es die clientseitige Validierung erfüllt. Die folgenden Eigenschaften werden den Eigenschaften der Aktion hinzugefügt:
Name Beschreibung Typ Erforderlich?
type Aktionstyp "submitForm" Ja
postback Die Postback Payload, die möglicherweise eine Aktion zum Auslösen der Navigation enthält. Der Wert dieser Eigenschaft muss in FormSubmissionMessagePayload festgelegt werden. JSONObject Nein
Beispiel-JSON
{
    "type": "submitForm",
    "label": "Submit",
    "postback": {
        "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
        "system.flow": "ExpenseFlow",
        "system.state": "editFormMapVar"
    }
}

urlAction

Fordert den Client an, eine Website in einer neuen Registerkarte oder in einem app-internen Browser zu öffnen.

Name Beschreibung Typ Erforderlich?
type Aktionstyp "call" Ja
url Die URL der angezeigten Website. Zeichenfolge Ja

Anhang

Stellt einen Anhang dar, der vom Benutzer gesendet wird.
Name Beschreibung Typ Erforderlich?
title Der Anhangstitel Zeichenfolge Nein
type Der Anhangstyp Zeichenfolge (Gültige Werte: audio, file, image, video) Ja
url Die Download-URL für den Anhang Zeichenfolge Ja
Beispiel:
{
    "title": "Oracle Open World Promotion",
    "type": "image",
    "url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}

Karte

Stellt eine einzelne Karte in der Nachrichten-Payload dar.
Name Beschreibung Typ Erforderlich?
title Der Titel der Karte, der als erste Zeile auf der Karte angezeigt wird. Zeichenfolge Ja
description Die Beschreibung der Karte Zeichenfolge Nein
imageUrl Die URL des angezeigten Bildes. Zeichenfolge Nein
URL Die Website-URL, die durch Tippen geöffnet wird. Zeichenfolge Nein
actions Ein Array von Aktionen im Zusammenhang mit dem Text Array Nein
channelExtensions Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften JSONObject Nein

Standort

Stellt ein Standortobjekt dar.
Name Beschreibung Typ Erforderlich?
title Der Standorttitel Zeichenfolge Nein
url Die URL zur Anzeige des Standortes auf einer Karte Zeichenfolge Nein
latitude Längengradwert der GPS-Koordinate Double Ja
longitude Der Breitengradwert der GPS-Koordinate Double Ja
Beispiel:
{
    "title": "Oracle Headquarters",
    "url": "https://www.google.com.au/maps/place/37°31'47.3%22N+122°15'57.6%22W",
    "longitude": -122.265987,
    "latitude": 37.529818
}

Sprachfunktion

Stellt eine Sprachinformation in einer Nachricht dar
Name Beschreibung Typ Erforderlich?
text Der Übersichtstext für TTS Zeichenfolge Mindestens eine der Eigenschaften muss übergeben werden
longText Detaillierter Text für TTS Zeichenfolge Mindestens eine der Eigenschaften muss übergeben werden
soundUrl Die URL einer abzuspielenden Sounddatei Zeichenfolge Mindestens eine der Eigenschaften muss übergeben werden
.

Feld

Stellt die atomaren Informationen einer Tabellenzelle oder eines Formularfelds in den Objekten Table, Form und Table-Form dar, die als Schlüssel/Wert-Paar bereitgestellt werden.
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp Zeichenfolge Ja
label Der Feldschlüssel Zeichenfolge Ja
marginTop Der vertikale Abstand zwischen diesem Feld und dem vorherigen Feld in derselben Spalte "none", "medium","large" Nein
labelFontSize Der für das Feldlabel verwendete Schriftgrad "small", "medium", "large" Nein
labelFontWeight Die Positionierung des Etiketts in seiner Zelle "light", "medium", "bold" Nein
channelExtensions Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften JSONObject Nein

PaginationInfo

Stellt die Paging-Informationen für die Ergebnisse in den Objekten Table, Form und Table-Form dar.

Name Beschreibung Typ Erforderlich?
totalCount Die Gesamtanzahl der Ergebnisse Nummer Ja
rangeSize Die Bereichsgröße der Ergebnisse pro Seite Zahl Ja
status Paging-Statusmeldung Zeichenfolge Ja
currentRangeSize Die Größe des aktuellen Ergebnisbereichs Zahl Ja
rangeStart Der Startversatz des aktuellen Ergebnisbereichs Zahl Ja
nextRangeSize Die Größe des nächsten Ergebnisbereichs Zahl Ja
hasPrevious Gibt an, ob eine vorherige Ergebnismenge vorhanden ist boolean Ja
hasNext Gibt an, ob eine nächste Gruppe von Ergebnissen vorhanden ist boolean Ja

Schreibgeschütztes Feld

Stellt ein schreibgeschütztes Feld dar. Alle schreibgeschützten Felder erben die Feldeigenschaften und verfügen über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
value Der Feldwert Zeichenfolge Ja
width Der vorgeschlagene Prozentsatz der gesamten verfügbaren Breite, die das Feld in einem Tabellenlayout belegen soll. Nummer Nein
alignment Die Ausrichtung des Wertes in einer Tabellenspalte. Die Standardausrichtung ist right. "left", "center" und "right" Nein
onHoverPopupContent Der Inhalt, der angezeigt wird, wenn Benutzer den Mauszeiger über ein Feld bewegen. Message Payload Nein

Textfeld

Das Textfeld erbt alle schreibgeschützten Feldeigenschaften.
Name Beschreibung Typ Erforderlich?
displayType Der Elementtyp. text (ein Zeichenfolgenwert) Ja
truncateAt Die Position, an der langwieriger Text abgeschnitten wird und an der ein Auslassungszeichen (das angibt, dass der Wert abgeschnitten wurde) angezeigt wird. Zahl Nein
fontSize Die für den Feldwert verwendete Schriftgröße "small", "medium", "large" Nein
fontWeight Die Schriftstärke, die für den Feldwert verwendet wird "light", "medium", "bold" Nein
.

Link-Feld

Das Linkfeld erbt alle schreibgeschützten Feldeigenschaften und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "link" Ja
linkLabel Das Label, das für den Hyperlink verwendet wird Zeichenfolge Nein
imageUrl Die URL des Bildes, das einen Link öffnet, wenn Sie darauf klicken. Zeichenfolge Nein

Medienfeld

Das Medienfeld erbt alle schreibgeschützten Feldeigenschaften und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "media" Ja
mediaType Der Feldmedientyp "video", "audio", "image" Ja

Feld Aktion

Das Aktionsfeld übernimmt alle schreibgeschützten Feldeigenschaften und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "action" Ja
action Die Aktion, die ausgeführt werden soll, wenn der Benutzer auf die Aktionsschaltfläche klickt. Maßnahme Ja

Bearbeitbares Feld

Stellt ein bearbeitbares Feld dar. Alle bearbeitbaren Felder übernehmen die Feldeigenschaften und verfügen über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
id Die Feld-ID Zeichenfolge Ja
placeholder Eine Beschreibung der Eingabe, die vom Benutzer erwartet wird. Dieser Text wird angezeigt, wenn der Benutzer noch keine Auswahl getroffen oder einen Wert eingegeben hat. Zeichenfolge Nein
required Ob diese Eingabe zum Weiterleiten des Formulars erforderlich ist boolean Nein
clientErrorMessage Die Fehlermeldung auf Feldebene, die unter dem Feld angezeigt wird, wenn ein clientseitiger Validierungsfehler auftritt. Wenn keine Angabe gemacht wird, lautet der Standardwert für das SDK editFieldErrorMessage. Zeichenfolge Nein
serverErrorMessage Die Fehlermeldung auf Feldebene, die unter dem Feld angezeigt wird, wenn ein serverseitiger Validierungsfehler auftritt. Diese Fehlermeldung muss in der vom Skill gesendeten Payload enthalten sein. Zeichenfolge Nein
autoSubmit Wenn dieser Wert auf true gesetzt ist, wird das Formular automatisch weitergeleitet, wenn der Benutzer einen Wert für das Feld eingegeben hat.   Nein

Einzelauswahl

Das Einzelauswahlfeld übernimmt alle Eigenschaften des bearbeitbaren Feldes und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "singleSelect" Ja
defaultValue Die Standardauswahl Primitive Datentypen (Zeichenfolge, Zahl, boolescher Wert usw.) Nein
options Ein Array von Optionen, die dem Benutzer angezeigt werden. Ein selectFieldOption-Array Ja
layoutStyle Der Layoutstil, mit dem die Einzelauswahloptionen wiedergegeben werden. Das Standardlayout ist list. "list", "radioGroup" Nein
layoutDirection Die Layoutrichtung (horizontal oder vertikal) für die Optionsfelder, wenn layoutStyle auf radioGroup gesetzt ist. Standardmäßig wird die Layoutrichtung als vertical, festgelegt, Sie können sie jedoch als horizontal festlegen. Zeichenfolge Nein

Mehrfachauswahl

Das Mehrfachauswahlfeld übernimmt alle Eigenschaften des bearbeitbaren Feldes und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "multiSelect" Ja
defaultValue Die Standardauswahl Ein Array<object> von primitiven Datentypen (eine Zeichenfolge, Zahl, boolescher Wert usw.) Nein
options Ein Array von Optionen, die dem Benutzer angezeigt werden Ein selectFieldOption-Array Ja
layoutStyle Der Layoutstil, mit dem die Optionen gerendert werden. "list", "checkboxes" Nein
layoutDirection Die Layoutrichtung (horizontal oder vertikal) für die Kontrollkästchen, wenn layoutStyle auf checkboxes gesetzt ist. Standardmäßig wird die Layoutrichtung als vertical festgelegt. Sie können sie aber auch als horizontal festlegen. Zeichenfolge Nein

DatePicker

Das Datumsauswahlfeld übernimmt die Eigenschaften für das bearbeitbare Feld und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "datePicker" Ja
defaultValue Der erste Wert für dieses Feld. Das Format muss YYYY-MM-DD sein. Zeichenfolge Nein
minDate Das zulässige Mindest- oder früheste Datum. Das Format muss YYYY-MM-DD sein. Zeichenfolge Nein
maxDate Das maximal zulässige oder späteste Datum. Das Format muss YYYY-MM-DD sein. Zeichenfolge Nein

TimePicker

Das Zeitauswahlfeld übernimmt die Eigenschaften Bearbeitbares Feld und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "timePicker" Ja
defaultValue Der Anfangswert für dieses Feld, der im 24-Stunden-Format als HH:mm eingegeben wurde. Zeichenfolge Nein
minTime Die zulässige Mindest- oder früheste Zeit, die im 24-Stunden-Format als HH:mm eingegeben wurde. Beispiel: 00:00. Zeichenfolge Nein
maxTime Die maximal zulässige oder späteste Zeit, die als HH:mm im 24-Stunden-Format eingegeben wurde. Beispiel: 13:00. Zeichenfolge Nein

Einblenden

Das Umschaltfeld erbt alle Eigenschaften des bearbeitbaren Feldes und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "toggle" Ja
defaultValue Der ursprünglich ausgewählte Wert. Wenn der Umschalter anfänglich aktiviert sein soll, setzen Sie den Standardwert auf denselben Wert wie valueOn. Zeichenfolge Nein
valueOff Der Wert, wenn der Umschalter deaktiviert ist Zeichenfolge Ja
valueOn Der Wert, wenn der Umschalter aktiviert ist Zeichenfolge Ja
labelOff Das Label für den "off"-Wert Zeichenfolge Nein
labelOn Label für den "on"-Wert Zeichenfolge Nein

TextInput

Das Texteingabefeld übernimmt die Eigenschaften Bearbeitbares Feld und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "textInput" Ja
defaultValue Der anfängliche Wert für dieses Feld Zeichenfolge nein
validationRegularExpression Ein regulärer Ausdruck, der das erforderliche Format für diese Texteingabe angibt Zeichenfolge nein
multiline Kennzeichen, das bestimmt, ob mehrere Eingabezeilen wiedergegeben werden boolean nein
minLength Die Mindestlänge der Eingabe, die der Benutzer angeben muss Ganzzahl nein
maxLength Die maximal zulässige Zeichenanzahl im Texteingabefeld Ganzzahl nein
inputStyle Der vom Client verwendete Eingabestil. Zulässige Werte sind: "text", "tel", "url","email", und "password". Wird auf text zurückgesetzt, wenn das Eingabestil nicht festgelegt wurde. Zeichenfolge nein

NumberInput

Das Zahleneingabefeld erbt die Eigenschaften Bearbeitbares Feld und verfügt über die folgenden zusätzlichen Eigenschaften:
Name Beschreibung Typ Erforderlich?
displayType Der Feldtyp "numberInput" Ja
defaultValue Der anfängliche Wert für dieses Feld Ganzzahl Nein
minValue Kleinste zulässige Anzahl Ganzzahl Nein
maxValue Die maximal zulässige Anzahl. Ganzzahl Nein

selectFieldOption

Die Felder Einfachauswahl und Mehrfachauswahl verwenden eine Liste mit Auswahlfeldoptionen mit den folgenden Eigenschaften:
Name Beschreibung Typ Erforderlich?
label Der Anzeigetext Zeichenfolge Ja
value Der Wert für die Option Primitive Datentypen (Zeichenfolge, Zahl, boolescher Wert usw.) Nein
channelExtensions Die kanalspezifischen Erweiterungseigenschaften, die der Feldoption zugeordnet sind. JSONObject Nein

TableHeading

Stellt eine Überschrift für Tabellen in einem Table- oder Table-Form-Objekt dar.
Name Beschreibung Typ Erforderlich?
label Das Titellabel Zeichenfolge Ja
alignment Positionierung des Etiketts innerhalb der Zelle "left", "right", "center" Ja
width Der vorgeschlagene Prozentsatz der Tabellenbreite, der für die Überschrift angegeben werden soll.   Nein
channelExtensions Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften JSONObject Nein

TableRow

Stellt ein Feldarray dar.
Name Beschreibung Typ Erforderlich?
fields Ein Array von Feldern <Feld>> Ja
selectAction Die Aktion, die ausgeführt wird, wenn die Zeile ausgewählt wird. Das Label der Aktion wird als QuickInfo angezeigt, wenn Benutzer den Mauszeiger über der Zeile bewegen. Aktion Nein
channelExtensions Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften JSONObject Nein

Formular

Stellt ein Array von Feldern zusammen mit einem Titel dar. Wird in Table-Form-Nachrichten für verschachtelte Formulare einer Tabellenzeile verwendet.
Name Beschreibung Typ Erforderlich?
id Die ID des Formulars Zeichenfolge Nein
title Der Formulartitel Zeichenfolge Nein
fields Ein Array von Feldern Array <Feld> Ja
actions Ein Array von Aktionen Array <BotsAction> Nein
separator Gibt an, ob ein Trennzeichen für das Formular angezeigt werden soll. Wenn dieser Wert nicht übergeben wird, wird ein Trennzeichen für das Formular angezeigt. Boolesch Nein
formRows Eine Liste mit Zeilen, die sowohl editierbare als auch schreibgeschützte Felder enthalten können. Mit dieser Eigenschaft können Sie entweder die Liste der Felder (mit den Eigenschaften fields und optional formColumns) oder eine Liste der Zeilen definieren. Die fields und formRows sind gegenseitig exlusive. Maßnahme Nein
channelExtensions Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften JSONObject Nein

FormRow

Name Beschreibung Typ Erforderlich?
id Die ID der Formularzeile Zeichenfolge Nein
columns Eine Liste der Spalten, die in der Formularzeile angezeigt werden. Array <FormColumn> Ja
selectAction Die Aktionen, die ausgeführt werden, wenn das Formular ausgewählt wurde. Wenn Benutzer den Mauszeiger über das Formular bewegen, wird das Label der Aktion als QuickInfo (sofern vom Kanal unterstützt) angezeigt. Maßnahme Nein
separator Wenn Sie diese Eigenschaft auf "true" setzen, wird eine Trennlinie über dem Inhalt in der Formularzeile eingefügt. Boolean Nein
channelExtensions Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften JSONObject Nein

FormColumn

Name Beschreibung Typ Erforderlich?
id Die ID der Spalte Zeichenfolge Nein
fields Eine Liste von Feldern, die vertikal in der Spalte angezeigt werden. Diese Felder müssen ReadOnlyField-Instanzen sein, wenn die Spalte in einer FormRow innerhalb einer Form verwendet wird. Die Felder können sowohl schreibgeschützte als auch bearbeitbare Felder sein, wenn die FormRow in einer EditFormMessagePayload verwendet wird. Array<Feld> Ja
verticalAlignment Die vertikale Ausrichtung der Spalte gegenüber den anderen Spalten in derselben Formularzeile. Zeichenfolge Nein
width Bestimmt die Breite der Spalte innerhalb der Formularzeile. Zulässige Werte sind auto (Standard) und stretch. Wenn diese Option auf stretch gesetzt ist, nimmt die Spalte die gesamte verbleibende Breite an, nachdem alle Spalten mit automatischer Breite gerendert wurden. Wenn mehrere Spalten auf stretch gesetzt sind, teilen sie die verbleibende Breite gleichmäßig auf. Zeichenfolge Nein
widthPct Erfolgreich, wenn die Breite auf "Fest" gesetzt ist. Legt die Breiteneigenschaft für das Spaltenelement auf den übergebenen Prozentwert fest. Zahl Nein
channelExtensions Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften JSONObject Nein

EventContextProperties

Ereigniskontexteigenschaften stellen die Kontexteigenschaften CloudEvent dar.
Name Beschreibung Typ Erforderlich? Beispiel
dataschema Gibt das Schema an, dem die Daten entsprechen. URI Nein "/dw/approval_payload.json"
datacontenttype Der Inhaltstyp der Daten, die im Datenattribut enthalten sind. Zeichenfolge Nein "application/json"
source Die Ressource, die das Ereignis erzeugt hat. URI Nein "objectstorage"
time Die Uhrzeit des Ereignisses im RFC 3339-Zeitstempelformat. Timestamp Nein "2021-01-10T21:19:24Z"
specversion Die Version der CloudEvents-Spezifikation. Zeichenfolge Nein "1.0"
id Die ID der Spezifikation CloudEvents. Zeichenfolge Nein "123e4567-e89b-12d3-a456-426614174000"
subject Das Thema des Ereignisses im Kontext des Ereigniserstellers und/oder Ereignistyps. Zeichenfolge Nein "mynewfile.jpg"

Unterhaltungsnachricht

Alle Nachrichten, die Teil einer Unterhaltung sind, haben die folgende Struktur:
Name Beschreibung Typ Erforderlich?
messagePayload Die Nachrichten-Payload Meldung Ja
userId Die Benutzer-ID Zeichenfolge Ja
Beispiel:
{
    "messagePayload": {
        "text": "show menu",
        "type": "text"
    },
    "userId": "guest"
}

Meldung

Die Nachricht ist ein abstrakter Basistyp für alle anderen Nachrichten. Alle Nachrichten erweitern diesen Typ, um Informationen bereitzustellen.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp Zeichenfolge Ja

Benutzernachricht

Stellt eine Nachricht dar, die vom Benutzer an den Skill gesendet wird.

Benutzertextnachricht

Die einfache Textnachricht, die an den Server gesendet wird.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "text" Ja
text Meldungstext Zeichenfolge Ja
Beispiel:
{
    "messagePayload": {
        "text": "Order Pizza",
        "type": "text"
    },
    "userId": "guest"
}

Benutzeranhangsnachricht

Die Antwortnachricht zum Anhang, die an den Server gesendet wird.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "attachment" Ja
attachment Die Anhangsmetadaten Anhang Ja
Beispiel:
{
    "messagePayload": {
        "attachment": {
            "type": "image",
            "url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
        },
        "type": "attachment"
    },
    "userId": "guest"
}

Postback-Nachricht des Benutzers

Die Postback-Antwortnachricht, die an den Server gesendet wird.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "postback" Ja
text Der Postback-Text Zeichenfolge Nein
postback Der Postback der ausgewählten Aktion Eine Zeichenfolge oder JSONObject Ja
Beispiel:
{
    "messagePayload": {
        "postback": {
            "variables": {
                "pizza": "Small"
            },
            "system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
            "system.state": "orderPizza"
        },
        "text": "Small",
        "type": "postback"
    },
    "userId": "guest"
}

Benutzerstandortnachricht

Die Antwortnachricht zum Standort, die an den Server gesendet wird.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "location" Ja
location Die Informationen zum Benutzerstandort Standort Ja
Beispiel:
{
    "messagePayload": {
        "location": {
            "latitude": 45.9285271,
            "longitude": 132.6101925
        },
        "type": "location"
    },
    "userId": "guest"
}

Benutzernachricht inboundEvent

Stellt die ausgehenden Ereignisnachrichten dar, die an den Server gesendet werden können. Die folgenden Eigenschaften werden auf die Datei Message angewendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "inboundEvent" Ja
eventType Der Ereignistyp (im Ereigniskatalog definiert) Zeichenfolge Ja
eventVersion Die Ereignistypversion (im Ereigniskatalog definiert) Zeichenfolge Ja
eventData Die Geschäftsdaten JSONObject Ja
contextProperties Die Ereigniskontexteigenschaften Ereigniskontext-Eigenschaften Nein
Beispiel:
{
    "messagePayload": {
        "eventData": {
            "size": "Medium",
            "type": "Cheese"
        },
        "eventVersion": "1.0",
        "eventType": "com.pizzastore.pizza.orderserved",
        "type": "inboundEvent",
        "contextProperties": {
            "id": "6ce23f09-bff7-4369-8467-0c510e971aaf",
            "source": "pizza/service",
        }
    },
    "userId": "guest"
}

Benutzerformularweiterleitungsnachricht

Dies stellt die Formularweiterleitungsnachricht dar, die gesendet wird, nachdem der Benutzer ein Formular von einer SubmitFormAction weitergeleitet hat. Es enthält die folgenden Eigenschaften:
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp. "formSubmission" Ja
submittedFields Schlüssel/Wert-Paare der weitergeleiteten Feldwerte. Der Schlüssel ist der Name (ID) des Feldes. JSONObject Ja
postback Die Postback Payload, die möglicherweise eine Aktionseigenschaft zum Auslösen der Navigation enthält. Der Wert dieser Eigenschaft muss aus der Datei SubmitFormAction übernommen werden. JSONObject Nein
partialSubmitField Die ID des Feldes, das eine teilweise Formularweiterleitung auslöst. Felder, bei denen die Eigenschaft autoSumbit auf true gesetzt ist, können eine teilweise Formularweiterleitung auslösen. Zeichenfolge Nein
Beispiel-JSON
{
    "messagePayload": {
        "submittedFields": {
            "Attendees": [
                "Toff van Alphen"
            ],
            "Type": "Public transport",
            "Description": "expense",
            "Subject": "Expense",
            "Date": "2023-06-07",
            "Time": "18:58",
            "Amount": 6,
            "TipIncluded": "true"
        },
        "partialSubmitField": "Attendees",
        "type": "formSubmission"
    },
    "userId": "guest"
}

Antwortmeldungen

Stellt die Nachricht, die vom Skill oder Agent an den Benutzer gesendet wurde.

Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp Zeichenfolge Ja
headerText Der Headertext, der über dem Meldungstext angezeigt wird. Zeichenfolge Nein
footerText Der Fußzeilentext, der unter dem Nachrichtentext und den Aktionen angezeigt wird, jedoch vor den globalen Aktionen. Zeichenfolge Nein
actions Eine Liste mit Aktionen für die Nachricht Array<Action> Nein
footerForm Ein Formularlayout, das unter dem Fußzeilentext der Nachricht und über ihren globalen Aktionen angezeigt wird. Skillformularnachricht Nein
globalActions Eine Liste der globalen Aktionen für den Text Array<Aktion> Nein
channelExtensions Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften JSONObject Nein

Skillanhangsnachricht

Stellt eine Anhangsnachricht dar. Die folgenden Eigenschaften werden auf die Antwortnachrichten angewendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "attachment" Ja
attachment Der gesendete Anhang Anhang Ja
Hinweis

Dateiuploads von der Hostsite verlaufen möglicherweise nicht erfolgreich und können einen Konsolenfehler ausgeben, der beispielsweise wie folgt lautet:
https://<oda-instance>/chat/v1/attachments from origin <client site> has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource
Dies liegt daran, dass die CORS-(Cross-Origin Resource Sharing-)Einstellungen der Hostsite, die alle ursprungsübergreifenden HTTP-Anforderungen blockieren, auch Uploadanforderungen von der Clientinstanz an den Oracle Digital Assistant-Anhangsserver blockieren können. Wenn dieses Problem auftritt, aktualisieren Sie die Sicherheits-Policy der Hostsite, um die Domain für die Digital Assistant-Instanz zuzulassen. Da die Unterhaltung WebSocket-Verbindungen verwendet, wirkt sich CORS nicht auf die Unterhaltung aus.

Skillkartennachricht

Stellt eine Gruppe von Auswahlmöglichkeiten dar, die für den Benutzer angezeigt werden, entweder horizontal als Karussells oder vertikal als Listen. Die folgenden Eigenschaften werden auf die Antwortnachrichten angewendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "card" Ja
layout Gibt an, ob die Nachrichten horizontal oder vertikal angezeigt werden sollen. Zeichenfolge (Werte: horizontal, vertical) Ja
cards Ein Array von Karten, die gerendert werden sollen. Array Ja

Skillantwortbefehlsnachrichten-Payload

Stellt eine Befehlsnachrichten-Payload dar.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "command" Ja
command Der Befehl, der ausgeführt werden soll Zeichenfolge Ja
properties Eine Zuordnung von Schlüssel/Wert-Paaren JSONObject Ja

Skillantwort - Fehlermeldung - Payload

Stellt eine Fehlermeldungs-Payload dar, die Clients Feedback zu Fehlern im Backend gibt.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "error" Ja
errorMessage Die Fehlermeldung Zeichenfolge Ja
error java.lang.Error object Zeichenfolge Nein

Skillantwort ExecuteApplicationContextCommand Nachrichten-Payload

Dies stellt eine Befehlsnachrichten-Payload für "Anwendung ausführen" dar.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "executeApplicationActionCommand"  
actionType Der Aktionstyp "custom", "navigate", "query", "updateFields" Ja
command Der Befehl "Anwendungsaktion ausführen" "executeApplicationAction" Ja
context Der Name des Anwendungskontextes Zeichenfolge Ja
customAction Erforderlich, wenn actionType 'custom' ist String Nein
properties Schlüssel/Wert-Paare, die bei der Ausführung der Aktion als Argumente verwendet werden können JSONObject Nein

Feedbacknachrichten

Dies stellt eine Feedbackbewertungskomponente dar, die das Feedback eines Benutzers mit einem Bewertungsmaßstab (in der Regel einem Sternebewertungssystem) abruft. Die Payload ähnelt einer text-Nachricht, weist jedoch ein zusätzliches channelExtensions-Objektfeld auf, das als { "displayType": "stars" } festgelegt ist. Die folgenden Eigenschaften werden auf die Antwortnachrichten angewendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "text" Ja
text Meldungstext String Ja
channelExtensions Ein Objekt, das Erweiterungen der Payload beschreibt. { “displayType”: “stars” } Ja
Beispiel:
{
    "messagePayload":{
        "text":"How would you like to rate us?",
        "type":"text",
        "actions":[
            {
                "postback":{
                    "variables":{
                        "rating":"1"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"1",
                    "system.state":"giveFeedback"
                },
                "label":"1",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"2"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"2",
                    "system.state":"giveFeedback"
                },
                "label":"2",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"3"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"3",
                    "system.state":"giveFeedback"
                },
                "label":"3",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"4"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"4",
                    "system.state":"giveFeedback"
                },
                "label":"4",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"5"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"5",
                    "system.state":"giveFeedback"
                },
                "label":"5",
                "type":"postback"
            }
        ],
        "channelExtensions":{
            "displayType":"stars"
        }
    },
    "source":"BOT",
    "userId":"<userID>"
}

Skillstandortnachricht

Stellt eine Standortnachricht dar. Die folgenden Eigenschaften werden auf die Antwortnachrichten angewendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "location" Ja
location Standort Standort Ja

Skill - Ausgehende Ereignisnachricht

Stellt die ausgehenden Ereignisnachrichten dar, die vom Server gesendet werden können. Die folgenden Eigenschaften werden auf die Datei Message angewendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "outboundEvent" Ja
eventType Der Ereignistyp (im Ereigniskatalog definiert) Zeichenfolge Ja
eventVersion Die Ereignistypversion (im Ereigniskatalog definiert) Zeichenfolge Ja
eventData Die Geschäftsdaten JSONObject Ja
contextProperties Die Ereigniskontexteigenschaften Ereigniskontext-Eigenschaften Nein
Beispiel:
{
    "messagePayload": {
        "eventData": {
            "size": "Medium",
            "type": "Cheese"
        },
        "eventVersion": "1.0",
        "eventType": "com.pizzastore.pizza.ordercreated",
        "type": "outboundEvent",
        "contextProperties": {
            "tenancy": "odaserviceinstance00",
            "specversion": "1.0",
            "id": "7a923f09-bff7-4369-8467-0c510e971aaf",
            "source": "hello/app",
            "time": 1659357000,
            "type": "com.pizzastore.pizza.ordercreated",
            "channelname": "System_Global_Test",
            "version": "1.0",
            "userid": "3910088",
            "contenttype": "application/json"
        }
    }
}

Skillrohnachricht

Wird verwendet, wenn eine Komponente die kanalspezifische Payload selbst erstellt.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "raw" Ja
payload Die kanalspezifische Payload Ein JSON-Objekt Ja

Payload für geschlossene Nachricht für Skillantwortsession

Dies stellt eine Payload für geschlossene Sessionnachrichten dar. Sie bestätigt die Beendigung der Sitzung im Backend.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "sessionClosed" Ja

Skillantworttextnachricht

Stellt eine Textnachricht dar. Die folgenden Eigenschaften werden auf die Antwortnachrichten angewendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "text" Ja
text Meldungstext Zeichenfolge Ja
Beispiel:
{
    "messagePayload": {
        "type": "text",
        "text": "What do you want to do?",
        "actions": [
            {
                "type": "postback",
                "label": "Order Pizza",
                "postback": {
                    "state": "askAction",
                    "action": "orderPizza"
                }
            },
            {
                "type": "postback",
                "label": "Cancel A Previous Order",
                "postback": {
                    "state": "askAction",
                    "action": "cancelOrder"
                }
            }
        ]
    },
    "userId": "guest"
}

Skillantwort - Textstreamnachricht - Payload

Die Payload der Textstreamantwort ist eine Streamingtextantwort, die in Blöcken bereitgestellt wird. Es wendet die folgenden Eigenschaften auf die Antwortnachrichten-Payload an:
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "texStream" Ja
aggregateText Der aggregierte Text, der bis zum aktuellen Chunk im Stream bereitgestellt wird. Zeichenfolge Ja
streamId Die ID für den Stream. Blöcke desselben Streams haben denselben streamId. Zeichenfolge Ja
streamState Streamstatus des aktuellen Stream-Chunk "start", "running", "end" Ja
text Teiltext im aktuellen Chunk bereitgestellt Zeichenfolge Ja

Skillformularnachricht

Stellt eine Nachricht dar, die das Ergebnis einer Abfrage in einem schreibgeschützten Formular zurückgibt. Die Meldung besteht aus einem Array von Formularergebnissen. Jedes Formularergebnis enthält ein fields-Array mit Schlüssel/Wert-Paaren, die ein Feld darstellen. Die folgenden Eigenschaften werden auf die Antwortnachrichten angewendet.
Hinweis

Dieser Meldungstyp wird für SQL-Dialogfelder verwendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "form" Ja
forms Ein Array von Formularergebnissen. Jedes Ergebnis enthält ein fields-Array, das die Formularfelder darstellt. Array<Zeile> Ja
formColumns Die Anzahl der Spalten, in denen die Felder des Formulars gruppiert werden sollen. 1 2 Ja
paginationInfo Die Paging-Informationen für die Ergebnisse in der Form PaginationInfo Nein
{
    "type":"form",
    "headerText":"A-Team",
    "forms":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                },
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/aaron-adams-4862752"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                },
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Bobbrown"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                },
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Charlie-chase-97a418"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
                }
            ]
        }
    ],
    "formColumns":2,
    "paginationInfo":{
        "currentRangeSize":3,
        "rangeStart":0,
        "nextRangeSize":2,
        "hasPrevious":false,
        "hasNext":true,
        "totalCount":5,
        "rangeSize":3,
        "status":"Showing 1-3 of 5 items"
    },
    "globalActions":[
        {
            "postback":{
                "variables":{},
                "action":"system.showMore"
            },
            "label":"Show More",
            "type":"postback"
        }
    ]
}

Nachricht für Skilltabelle

Diese Meldung gibt die Ergebnisse einer Abfrage in Tabellenform zurück. Die Meldung besteht aus einem Array von Überschriften und einem Array von Zeilen. Die Zeilen selbst enthalten ein fields-Array, das einzelne Zellen darstellt. Die folgenden Eigenschaften werden auf die Antwortnachrichten angewendet.
Hinweis

Dieser Meldungstyp wird für SQL-Dialogfelder verwendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "table" Ja
headings Ein Array von Tabellenüberschriften Array<Überschrift> Ja
tableTitle Der Tabellentitel Zeichenfolge Nein
rows Ein Array von Tabellenzeilen. Jede Zeile enthält ein fields-Array, das die Tabellenzellen darstellt. Array<Zeile> Ja
paginationInfo Die Paging-Informationen für die Ergebnisse in der Tabelle PaginationInfo Nein
{
    "type":"table",
    "headerText":"A-Team",
    "tableTitle": "Document",
    "headings":[
        {
            "width":20,
            "label":"First Name",
            "alignment":"left"
        },
        {
            "width":20,
            "label":"Last Name",
            "alignment":"left"
        },
        {
            "width":35,
            "label":"Title",
            "alignment":"left"
        },
        {
            "width":25,
            "label":"Phone",
            "alignment":"right"
        }
    ],
    "rows":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"David"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Davidson"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Machine Learning Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Eric"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Eastman Junior"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Docker Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        }
    ],
    "paginationInfo":{
        "currentRangeSize":5,
        "rangeStart":0,
        "nextRangeSize":-3,
        "hasPrevious":false,
        "hasNext":false,
        "totalCount":5,
        "rangeSize":8,
        "status":"Showing 1-5 of 5 items"
    }
}

Qualifikationstabelle - Formularmeldung

Diese Nachricht kombiniert die Nachrichtentypen Table und Form. Sie stellt eine Meldung dar, die das Ergebnis einer Abfrage in Form einer Tabelle zurückgibt. Jede Zeile der Tabelle enthält zusätzlich zu den Zeileninformationen ein schreibgeschütztes Formular. Die folgenden Eigenschaften werden auf die Antwortnachrichten angewendet.
Hinweis

Dieser Meldungstyp wird für SQL-Dialogfelder verwendet.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp "tableForm" Ja
tableTitle Der Tabellentitel Zeichenfolge Nein
headings Ein Array von Tabellenüberschriften Array<Überschrift> Ja
rows Ein Array von Tabellenzeilen. Jede Zeile enthält ein Array von Feldern, die Tabellenzellen darstellen. Array<Zeile> Ja
forms Ein Array von Formularergebnissen, die jeder Tabellenzeile entsprechen. Jedes Formular enthält ein fields-Array, das die Formularfelder darstellt. Array<Form> Ja
formColumns Die Anzahl der Spalten, in denen die Felder des Formulars gruppiert werden sollen. 1 2 Ja
paginationInfo Ein Array mit globalen Aktionen, die sich auf den Text beziehen Array<Aktion> Nein
{
    "type":"tableForm",
    "headerText":"A-Team",
    "tableTitle": "Document",
    "headings":[
        {
            "width":47,
            "label":"First Name",
            "alignment":"left"
        },
        {
            "width":47,
            "label":"Last Name",
            "alignment":"left"
        }
    ],
    "rows":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                }
            ]
        }
    ],
    "forms":[
        {
            "title":"View details Aaron Adams",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Aaron-adams-4862572"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left"
                }
            ]
        },
        {
            "title":"View details Bob Brown",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Bobbrown"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
                }
            ]
        },
        {
            "title":"View details Charlie Chase",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder Fanatic"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Charlie-chase-97a418"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
                }
            ]
        }
    ],
    "formColumns":2,
    "paginationInfo":{
        "currentRangeSize":3,
        "rangeStart":0,
        "nextRangeSize":2,
        "hasPrevious":false,
        "hasNext":true,
        "totalCount":5,
        "rangeSize":3,
        "status":"Showing 1-3 of 5 items"
    },
    "actions":[
        {
            "postback":{
                "variables":{

                },
                "action":"system.showMore"
            },
            "label":"Show More",
            "type":"postback"
        }
    ],
    "footerText":"Tap on a row to see personal details"
}

Nachricht zum Bearbeiten des Skills

Stellt eine bearbeitbare Formularnachricht dar (Eingabeformular). Die Nachricht besteht aus einem Feld-Array.
Name Beschreibung Typ Erforderlich?
type Der Nachrichtentyp. In diesem Fall ist es "editForm". "editForm" Ja
title Ein Vertretungstitel für das Bearbeitungsformular Zeichenfolge Nein
fields Eine Liste mit Feldern, die sowohl editierbare als auch schreibgeschützte Felder enthalten können. Array<Feld> Ja
formColumns Die Anzahl der Spalten, in denen die Formularfelder gruppiert werden sollen. Die Eigenschaft ist nur anwendbar, wenn Sie auch die Eigenschaft field festlegen. Ganzzahl Nein
formRows Eine Liste mit Zeilen, die sowohl editierbare als auch schreibgeschützte Felder enthalten können. Sie müssen entweder die Eigenschaft fields festlegen, und formRows ist erforderlich. Diese beiden Möglichkeiten schließen sich gegenseitig aus. Array<FormRow>  
errorMessage Eine Fehlermeldung auf Formularebene, die angezeigt wird, wenn der Benutzer ungültige Daten übermittelt hat, der Fehler jedoch nicht mit einem einzelnen Feld verknüpft werden kann. Zeichenfolge Nr.
actions Ein Array von Aktionen für das Bearbeitungsformular. Dieses Array enthält eine SubmitFormAction. In der Browserkonsole wird ein Fehler angezeigt, wenn die SubmitFormAction nicht im Array actions enthalten ist. Array<Aktion> Nr.
globalActions Ein Array mit globalen Aktionen Array<Aktion> Nein
channelExtensions Eine Gruppe kanalspezifischer Erweiterungseigenschaften

Das Objekt channelExtensions kann eine Eigenschaft replaceMessage enthalten, die zum Ersetzen eines vorherigen Eingabeformulars verwendet wird.

JSONObject Nein
{
    "messagePayload": {
        "headerText": "Create Expense",
        "type": "editForm",
        "title": "Fill in the below form",
        "fields": [
            {
                "displayType": "textInput",
                "serverErrorMessage": "Invalid Text Input",
                "defaultValue": "Expense",
                "minLength": 5,
                "id": "Subject",
                "label": "Subject",
                "placeholder": "Enter subject of the expense",
                "clientErrorMessage": "Subject is required and must be between 5 and 15 characters",
                "maxLength": 15,
                "required": true
            },
            {
                "displayType": "textInput",
                "defaultValue": "expense",
                "multiLine": true,
                "id": "Description",
                "label": "Description",
                "placeholder": "What is expense justification",
                "clientErrorMessage": "Description is required",
                "required": true
            },
            {
                "displayType": "datePicker",
                "defaultValue": "2023-06-07",
                "maxDate": "2023-06-22",
                "id": "Date",
                "label": "Expense Date",
                "placeholder": "Pick a date in the past",
                "clientErrorMessage": "Expense date is required and must be in the past.",
                "required": true
            },
            {
                "displayType": "timePicker",
                "defaultValue": "18:58",
                "id": "Time",
                "label": "Expense Time",
                "placeholder": "What time was the expense",
                "clientErrorMessage": "Time is required. Please fill a value",
                "required": true
            },
            {
                "displayType": "numberInput",
                "minValue": 5,
                "defaultValue": 6,
                "maxValue": 500,
                "id": "Amount",
                "label": "Amount",
                "placeholder": "Enter expense amount",
                "clientErrorMessage": "Amount is required and must be between 5 and 500.",
                "required": true
            },
            {
                "autoSubmit": true,
                "displayType": "toggle",
                "defaultValue": "true",
                "labelOn": "Yes",
                "id": "TipIncluded",
                "label": "Tip Included?",
                "valueOff": "false",
                "labelOff": "No",
                "valueOn": "true"
            },
            {
                "displayType": "singleSelect",
                "serverErrorMessage": "Invalid Selection",
                "defaultValue": "Public transport",
                "options": [
                    {
                        "label": "Public transport",
                        "value": "Public transport"
                    },
                    {
                        "label": "Flight",
                        "value": "Flight"
                    }
                ],
                "layoutStyle": "list",
                "id": "Type",
                "label": "Expense Type",
                "placeholder": "Select expense type",
                "clientErrorMessage": "Expense type is required",
                "required": true
            },
            {
                "displayType": "multiSelect",
                "defaultValue": [
                    "Toff van Alphen"
                ],
                "options": [
                    {
                        "label": "Toff van Alphen",
                        "value": "Toff van Alphen"
                    },
                    {
                        "label": "Roger Federer",
                        "value": "Roger Federer"
                    }
                ],
                "layoutStyle": "checkboxes",
                "id": "Attendees",
                "label": "Attendees",
                "placeholder": "Select attendees",
                "clientErrorMessage": "Please select atleast one attendee",
                "required": true
            }
        ],
        "formColumns": 1,
        "actions": [
            {
                "postback": {
                    "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
                    "system.flow": "ExpenseFlow",
                    "system.state": "editFormMapVar"
                },
                "label": "Submit",
                "type": "submitForm"
            }
        ],
        "channelExtensions": {
            "replaceMessage": "True"
        }
    },
    "source": "BOT",
    "userId": "guest"
}