Modèle de message

Pour utiliser des fonctions telles que le mode sans interface et le mode délégué, vous devez vous familiariser avec les messages de compétence et d'utilisateur. Tous les éléments reçus ou envoyés à partir du serveur de clavardage Oracle sont représentés sous forme de message, envoyé par l'utilisateur à la compétence ou inversement.

Il s'agit des types de base utilisés dans tous les messages envoyés de l'utilisateur à la compétence, et inversement. Ils constituent la base de tous les messages.

Action

Une action représente un élément que l'utilisateur peut sélectionner.
Le nom Description Type Obligatoire?
type Type d'action chaîne Oui
label Texte de l'étiquette descriptive de l'action. chaîne Au moins un élément label ou imageUrl doit être inclus.
imageUrl Image de l'action chaîne Au moins une propriété label ou imageUrl unique doit être incluse.
style Style de rendu du bouton "primary", "danger", "default" Non
displayType Rendu du type d'élément d'action (bouton, lien ou icône) "button", "link", "icon" Non
channelExtensions Propriétés d'extension propres au canal associées à l'action JSONObject Non

PostbackAction

Envoie une republication prédéfinie à la compétence lorsque l'utilisateur sélectionne une action.
Nom Description Type Obligatoire?
type Type d'action "postback" Oui
postback Republication retournée lorsque l'utilisateur sélectionne une action. Chaîne ou objet JSON Oui
Par exemple :
{
    "type": "postback",
    "label": "Large Pizza",
    "imageUrl": "https://example.com/images/gallery/locations/11.jpg",
    "postback": {
        "state": "askSize",
        "action": "getCrust"
    }
}

CallAction

Demande au client d'appeler un numéro de téléphone spécifié pour le compte de l'utilisateur.
Nom Description Type Obligatoire?
type Type d'action "call" Oui
phoneNumber Numéro de téléphone à appeler chaîne Oui
Par exemple :
{
    "type": "call",
    "label": "Call Support",
    "imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
    "phoneNumber": "18005555555"
}

urlAction

Demande au client d'ouvrir un site Web dans un nouvel onglet ou dans un navigateur intégré à l'application.

Le nom Description Type Obligatoire?
type Type d'action "call" Oui
url URL du site Web affiché. chaîne Oui

ShareAction

Demande au client d'ouvrir une boîte de dialogue de partage pour l'utilisateur.
Le nom Description Type Obligatoire?
type Type d'action "share" Oui

LocationAction

Demande au client de demander l'emplacement de l'utilisateur.
Le nom Description Type Obligatoire?
type Type d'action "location" Oui
Par exemple :
{
    "type": "location",
    "label": "Share location",
    "imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}

PopupAction

Cette action ouvre une fenêtre contextuelle après que les utilisateurs ont effectué une action de clic sur un élément. PopupAction utilise les propriétés Action avec les siennes :
Le nom Description Type Obligatoire?
type Type d'action "popup" Oui
popupContent Contenu qui s'affiche dans la fenêtre contextuelle. Données utiles du message (voir l'exemple JSON suivant) Oui
{
    "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,
    }
}

SubmitFormAction

Cette action est utilisée pour soumettre un formulaire d'entrée à la compétence lorsqu'elle satisfait à la validation côté client. Il ajoute les propriétés suivantes aux propriétés d'action :
Le nom Description Type Obligatoire?
type Type d'action "submitForm" Oui
postback Données utiles de republication, qui peuvent inclure une action pour déclencher la navigation. La valeur de cette propriété doit être définie dans FormSubmissionMessagePayload. JSONObject Non
Exemple de JSON
{
    "type": "submitForm",
    "label": "Submit",
    "postback": {
        "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
        "system.flow": "ExpenseFlow",
        "system.state": "editFormMapVar"
    }
}

Fichier joint

Représente un fichier joint envoyé par l'utilisateur.
Le nom Description Type Obligatoire?
title Titre du fichier joint chaîne Non
type Type de fichier joint chaîne (valeurs valides : audio, file, image, video) Oui
url URL de téléchargement du fichier joint chaîne Oui
Par exemple :
{
    "title": "Oracle Open World Promotion",
    "type": "image",
    "url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}

Carte

Représente une carte dans les données utiles du message.
Le nom Description Type Obligatoire?
title Titre de la carte, affiché sur la première ligne de celle-ci. chaîne Oui
description Description de la carte chaîne Non
imageUrl URL de l'image affichée. chaîne Non
URL URL du site Web ouvert par toucher. chaîne Non
actions Tableau d'actions liées au texte tableau Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

Emplacement

Représente un objet d'emplacement.
Le nom Description Type Obligatoire?
title Titre de l'emplacement chaîne Non
url URL permettant d'afficher l'emplacement sur une carte chaîne Non
latitude Valeur de longitude des coordonnées GPS double Oui
longitude Valeur de latitude des coordonnées GPS double Oui
Par exemple :
{
    "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
}

PaginationInfo

Représente les informations de pagination pour les résultats dans les objets Table, Form et Table-Form.

Le nom Description Type Obligatoire?
totalCount Nombre total de résultats nombre Oui
rangeSize Taille de l'intervalle des résultats par page nombre Oui
status Message de statut de pagination Chaîne Oui
currentRangeSize Taille de l'intervalle de résultats courant nombre Oui
rangeStart Décalage de début de l'intervalle de résultats courant nombre Oui
nextRangeSize Taille de l'intervalle de résultats suivant nombre Oui
hasPrevious Indique s'il existe un jeu de résultats précédent booléen Oui
hasNext Indique s'il existe un jeu de résultats suivant booléen Oui

FormRow

Le nom Description Type Obligatoire?
id ID de la rangée du formulaire Chaîne Non
columns Liste des colonnes affichées dans la rangée du formulaire. Tableau <Colonne> Oui
selectAction Actions exécutées lorsque le formulaire a été sélectionné. Lorsque les utilisateurs positionnent le pointeur de la souris sur le formulaire, l'étiquette de l'action s'affiche sous forme d'infobulle (lorsqu'elle est prise en charge par le canal). Action Non
separator Le réglage de cette propriété à Vrai insère une ligne de séparation au-dessus du contenu dans la ligne du formulaire. Boolean Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

Colonne

Nom Description Type Obligatoire?
id ID de la colonne Chaîne Non
fields Liste des champs qui s'affichent verticalement dans la colonne. Ces champs doivent être des instances ReadOnlyField lorsque la colonne est utilisée dans une FormRow dans une Form. Les champs peuvent être en lecture seule et modifiables lorsque FormRow est utilisé dans un EditFormMessagePayload. Tableau <Champ> Oui
verticalAlignment Alignement vertical de la colonne par rapport aux autres colonnes de la même ligne de formulaire. Chaîne Non
width Détermine la largeur de la colonne dans la rangée du formulaire. Les valeurs autorisées sont auto (valeur par défaut) et stretch. Lorsque cette option est réglée à stretch, la colonne prend toute la largeur restante après l'affichage des colonnes à largeur automatique. Si plusieurs colonnes sont réglées à stretch, elles divisent uniformément la largeur restante. Chaîne Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

Formulaire

Représente un tableau de champs avec un titre. Utilisé dans les messages Table-Form pour les formulaires imbriqués d'une rangée de table.
Le nom Description Type Obligatoire?
id ID du formulaire Chaîne Non
title Le titre du formulaire Chaîne Non
fields Un tableau de champs Tableau <Champ> Oui
actions Tableau d'actions Tableau <BotsAction> Non
formRows Liste des rangées pouvant inclure à la fois des champs modifiables et des champs en lecture seule. Vous pouvez définir la liste de champs (à l'aide de fields et éventuellement des propriétés formColumns) ou une liste de rangées à l'aide de cette propriété. fields et formRows sont mutuellement exlusifs. Action Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

rangée

Représente un tableau de champs.
Le nom Description Type Obligatoire?
fields Un tableau de champs <Champ> Oui
selectAction Action exécutée lorsque l'enregistrement est sélectionné. L'étiquette de l'action s'affiche en tant qu'infobulle lorsque les utilisateurs pointent au-dessus de la rangée. Action Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

Titre

Représente un en-tête pour les tables d'un objet Table ou Table-Form.
Le nom Description Type Obligatoire?
label L'étiquette d'en-tête Chaîne Oui
alignment Positionnement de l'étiquette dans la cellule "left", "right", "center" Oui
width Pourcentage suggéré de la largeur du tableau qui doit être fourni à l'en-tête.   Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

Champ

Représente les informations atomiques d'une cellule de table ou d'un champ de formulaire dans les objets Table, Form et Table-Form, fournis en tant que paire clé-valeur.
Le nom Description Type Obligatoire?
displayType Type de champ Chaîne Oui
label La clé du champ Chaîne Oui
marginTop Quantité d'espace vertical entre ce champ et le champ précédent dans la même colonne "none", "medium","large" Non
labelFontSize Taille de police utilisée pour l'étiquette de champ "small", "medium", "large" Non
labelFontWeight Positionnement de l'étiquette dans sa cellule "light", "medium", "bold" Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

selectFieldOption

Les champs Sélection unique et Sélection multiple utilisent une liste d'options de sélection de champ avec les propriétés suivantes :
Nom Description Type Obligatoire?
label Le texte d'affichage chaîne Oui
value Valeur de l'option Types de données primitifs (chaîne, nombre, booléen, etc.) Non
channelExtensions Propriétés d'extension propres au canal associées à l'option de champ. JSONObject Non

Champ en lecture seule

Représente un champ en lecture seule. Tous les champs en lecture seule héritent des propriétés de champ et possèdent les propriétés supplémentaires suivantes :
Nom Description Type Obligatoire?
value Valeur du champ chaîne Oui
width Pourcentage suggéré de la largeur totale disponible que le champ doit occuper dans une disposition de tableau. nombre Non
alignment Alignement de la valeur dans une colonne de table. L'alignement par défaut est right. "left", "center" et "right" Non
onHoverPopupContent Contenu qui s'affiche lorsque les utilisateurs positionnent le pointeur de la souris sur un champ. Données utiles du message Non

Champ de texte

Le champ de texte hérite de toutes les propriétés de champ en lecture seule.
Le nom Description Type Obligatoire?
displayType Type d'élément. text (valeur de chaîne) Oui
truncateAt Position à laquelle le texte long est tronqué et où une marque de points de suspension (qui indique que la valeur a été tronquée) s'affiche. Numéro Non
fontSize Taille de police utilisée pour la valeur du champ "small", "medium", "large" Non
fontWeight Poids de police utilisé pour la valeur du champ "light", "medium", "bold" Non
.

Champ de lien

Le champ de lien hérite de toutes les propriétés de champ en lecture seule et possède les propriétés supplémentaires suivantes :
Nom Description Type Obligatoire?
displayType Type de champ "link" Oui
linkLabel Étiquette utilisée pour le lien hypertexte chaîne Non
imageUrl URL de l'image qui ouvre un lien lorsque l'utilisateur clique dessus. chaîne Non

Champ de média

Le champ de média hérite de toutes les propriétés de champ en lecture seule et possède les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
displayType Type de champ "média" Oui
mediaType Type de média du champ "video", "audio", "image" Oui

Champ d'action

Le champ d'action hérite de toutes les propriétés de champ en lecture seule et possède les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
displayType Type de champ "action" Oui
action Action qui doit être effectuée lorsque l'utilisateur clique sur le bouton d'action. Action Oui

Champ modifiable

Représente un champ modifiable. Tous les champs modifiables héritent des propriétés de champ et possèdent les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
id ID champ chaîne Oui
placeholder Description de l'entrée attendue de l'utilisateur. Ce texte s'affiche lorsque l'utilisateur n'a pas encore effectué de sélection ou entré de valeur. chaîne Non
required Indique si cette entrée est requise pour soumettre le formulaire booléen Non
clientErrorMessage Message d'erreur au niveau du champ affiché sous le champ lorsqu'une erreur de validation côté client se produit. Si elle n'est pas fournie, la trousse SDK prend par défaut la valeur editFieldErrorMessage. chaîne Non
serverErrorMessage Message d'erreur au niveau du champ affiché sous le champ lorsqu'une erreur de validation côté serveur se produit. Ce message d'erreur doit être inclus dans les données utiles envoyées par la compétence. chaîne Non
autoSubmit Lorsque cette option est réglée à true, le formulaire est soumis automatiquement lorsque l'utilisateur a entré une valeur pour le champ.   Non

Sélection unique

Le champ à sélection unique hérite de toutes les propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
displayType Type de champ "singleSelect" Oui
defaultValue La sélection par défaut Types de données primitifs (chaîne, nombre, booléen, etc.) Non
options Tableau d'options présenté à l'utilisateur. Un tableau selectFieldOption Oui
layoutStyle Style de disposition utilisé pour afficher les options de sélection unique. La disposition par défaut est list. "list", "radioGroup" Non
layoutDirection Direction de disposition (horizontale ou verticale) des boutons radio lorsque layoutStyle est réglé à radioGroup. Par défaut, la direction de disposition est réglée à vertical,, mais vous pouvez la régler à horizontal. Chaîne Non

Sélection multiple

Le champ à sélection multiple hérite de toutes les propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
displayType Type de champ "multiSelect" Oui
defaultValue La sélection par défaut Tableau<object> de types de données primitifs (chaîne, nombre, booléen, etc.) Non
options Tableau d'options présenté à l'utilisateur Un tableau selectFieldOption Oui
layoutStyle Style de disposition utilisé pour afficher les options. "list", "checkboxes" Non
layoutDirection Direction de disposition (horizontale ou verticale) des cases à cocher lorsque layoutStyle est réglé à checkboxes. Par défaut, la direction de disposition est réglée à vertical, mais vous pouvez également la définir à horizontal. Chaîne Non

DatePicker

Le champ du sélecteur de date hérite des propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
displayType Type de champ "datePicker" Oui
defaultValue Valeur initiale de ce champ. Le format doit être AAAA-MM-JJ. chaîne Non
minDate Date minimale ou au plus tôt autorisée. Le format doit être AAAA-MM-JJ. chaîne Non
maxDate Date maximale ou au plus tard autorisée. Le format doit être AAAA-MM-JJ. chaîne Non

TimePicker

Le champ de sélecteur d'heure hérite des propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
displayType Type de champ "timePicker" Oui
defaultValue Valeur initiale de ce champ, entrée en tant que HH:mm au format 24 heures. chaîne Non
minTime Heure minimale ou au plus tôt autorisée, entrée en tant que HH:mm au format 24 heures. Par exemple, 00 :00. chaîne Non
maxTime Heure maximale ou la plus récente autorisée, entrée en tant que HH:mm, au format 24 heures. Par exemple, 13 :00. chaîne Non

Activer/désactiver

Le champ à bascule hérite de toutes les propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
displayType Type de champ "toggle" Oui
defaultValue Valeur initiale sélectionnée. Si vous voulez que l'activation/désactivation soit activée initialement, réglez la valeur par défaut à la même valeur que valueOn. chaîne Non
valueOff Valeur lorsque le basculement est désactivé chaîne Oui
valueOn Valeur lorsque le basculement est activé chaîne Oui
labelOff Étiquette de la valeur "Off" chaîne Non
labelOn Étiquette de la valeur "on" chaîne Non

TextInput

Le champ d'entrée de texte hérite des propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
displayType Type de champ "textInput" Oui
defaultValue La valeur initiale de ce champ chaîne non
validationRegularExpression Expression rationnelle indiquant le format requis pour cette entrée de texte chaîne non
multiline Indicateur qui détermine s'il faut afficher plusieurs lignes d'entrée booléen non
minLength Longueur minimale d'entrée que l'utilisateur doit fournir entier non
maxLength Nombre maximal de caractères autorisés dans le champ d'entrée de texte entier non
inputStyle Style d'entrée utilisé par le client. Les valeurs autorisées sont : "text", "tel", "url","email", et "password". chaîne non

NumberInput

Le champ d'entrée numérique hérite des propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Le nom Description Type Obligatoire?
displayType Type de champ "numberInput" Oui
defaultValue La valeur initiale de ce champ Entier Non
minValue Un plus petit nombre autorisé Entier Non
maxValue Le plus grand nombre autorisé. Entier Non

EventContextProperties

Les propriétés de contexte d'événement représentent les propriétés de contexte CloudEvent.
Le nom Description Type Obligatoire? Exemple
dataschema Identifie le schéma auquel les données adhèrent. URI Non "/dw/approval_payload.json"
datacontenttype Type de contenu des données incluses dans l'attribut de données. Chaîne Non "application/json"
source Ressource qui a produit l'événement. URI Non "objectstorage"
time Heure de l'événement dans le format d'heure RFC 3339. Horodatage Non "2021-01-10T21:19:24Z"
specversion Version de la spécification CloudEvents. Chaîne Non "1.0"
id ID de la spécification CloudEvents. Chaîne Non "123e4567-e89b-12d3-a456-426614174000"
subject Objet de l'événement dans le contexte du producteur d'événements ou du type d'événement. Chaîne Non "mynewfile.jpg"

Message de conversation

Tous les messages d'une conversation ont la structure suivante :
Le nom Description Type Obligatoire?
messagePayload Données utiles du message Message Oui
userId ID utilisateur chaîne Oui
Par exemple :
{
    "messagePayload": {
        "text": "show menu",
        "type": "text"
    },
    "userId": "guest"
}

Message

Message est un type de base abstrait pour tous les autres messages. Tous les messages étendent ce type pour fournir des informations.
Le nom Description Type Obligatoire?
type Type de message chaîne Oui

Message d'utilisateur

Représente un message envoyé par l'utilisateur à la compétence.

Message texte d'utilisateur

Message texte simple envoyé au serveur.
Le nom Description Type Obligatoire?
type Type de message "text" Oui
text Texte du message chaîne Oui
Par exemple :
{
    "messagePayload": {
        "text": "Order Pizza",
        "type": "text"
    },
    "userId": "guest"
}

Message de republication d'utilisateur

Message de réponse de republication envoyé au serveur.
Le nom Description Type Obligatoire?
type Type de message "postback" Oui
text Texte de republication chaîne Non
postback Republication de l'action sélectionnée Une chaîne ou JSONObject Oui
Par exemple :
{
    "messagePayload": {
        "postback": {
            "variables": {
                "pizza": "Small"
            },
            "system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
            "system.state": "orderPizza"
        },
        "text": "Small",
        "type": "postback"
    },
    "userId": "guest"
}

Message de l'utilisateur inboundEvent

Représente les messages d'événement sortants qui peuvent être envoyés au serveur. Elle applique les propriétés suivantes à Message.
Le nom Description Type Obligatoire?
type Type de message "inboundEvent" Oui
eventType Type d'événement (défini dans le catalogue d'événements) Chaîne Oui
eventVersion Version du type d'événement (définie dans le catalogue d'événements) Chaîne Oui
eventData Les données d'affaires JSONObject Oui
contextProperties Propriétés du contexte d'événement Propriétés de contexte d'événement Non
Par exemple :
{
    "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"
}

Message de soumission de formulaire d'utilisateur

Il s'agit du message de soumission de formulaire envoyé après que l'utilisateur a soumis un formulaire par une adresse SubmitFormAction. Il possède les propriétés suivantes :
Nom Description Type Obligatoire?
type Type de message. "formSubmission" Oui
submittedFields Paires clé-valeur des valeurs de champ soumises. La clé est le nom (ID) du champ. JSONObject Oui
postback Données utiles de republication, qui peuvent inclure une propriété d'action pour déclencher la navigation. La valeur de cette propriété doit être extraite de SubmitFormAction. JSONObject Non
partialSubmitField ID du champ qui déclenche la soumission d'un formulaire partiel. Les champs dont la propriété autoSumbit est réglée à true peuvent déclencher une soumission partielle de formulaire. Chaîne Non
Exemple de 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"
}

Message joint d'utilisateur

Message de réponse avec fichier joint envoyé au serveur.
Le nom Description Type Obligatoire?
type Type de message "attachment" Oui
attachment Métadonnées du fichier joint Fichier joint Oui
Par exemple :
{
    "messagePayload": {
        "attachment": {
            "type": "image",
            "url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
        },
        "type": "attachment"
    },
    "userId": "guest"
}

Message d'emplacement d'utilisateur

Message de réponse d'emplacement envoyé au serveur.
Le nom Description Type Obligatoire?
type Type de message "location" Oui
location Informations sur l'emplacement de l'utilisateur Emplacement Oui
Par exemple :
{
    "messagePayload": {
        "location": {
            "latitude": 45.9285271,
            "longitude": 132.6101925
        },
        "type": "location"
    },
    "userId": "guest"
}

Message de la compétence

Représente le message envoyé par la compétence à l'utilisateur.

Le nom Description Type Obligatoire?
type Type de message chaîne Oui
headerText Texte d'en-tête affiché au-dessus du texte du message. chaîne Non
footerText Texte de pied de page affiché sous le texte et les actions du message, mais avant les actions globales. chaîne Non
actions Liste des actions liées au message Array<Action> Non
footerForm Disposition de formulaire qui s'affiche sous le texte de pied de page du message et au-dessus de ses actions globales. Message de formulaire d'aptitude Non
globalActions Liste des actions globales liées au texte Tableau <Action> Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

Message texte de robot

Représente un message texte. Il applique les propriétés suivantes au message de compétence.
Le nom Description Type Obligatoire?
type Type de message "text" Oui
text Texte du message chaîne Oui
Par exemple :
{
    "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"
}

Message d'emplacement d'aptitude

Représente un message d'emplacement. Il applique les propriétés suivantes au message de compétence.
Nom Description Type Obligatoire?
type Type de message "location" Oui
location Emplacement Emplacement Oui

Message de fichier joint à l'aptitude

Représente un message avec fichier joint. Il applique les propriétés suivantes au message de compétence.
Nom Description Type Obligatoire?
type Type de message "attachment" Oui
attachment Fichier joint envoyé Fichier joint Oui
Note

Les téléchargements de fichiers depuis le site hôte risquent d'échouer et d'émettre une erreur console semblable à ce qui suit :
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
En effet, les paramètres CORS (Cross-Origin Resource Sharing) du site hôte, qui bloquent toutes les demandes HTTP d'origine croisée, peuvent également empêcher le chargement des demandes de l'instance client au serveur de fichiers joints Oracle Digital Assistant. Si vous rencontrez ce problème, modifiez la politique de sécurité du site hôte pour autoriser le domaine de l'instance Digital Assistant. Étant donné que la conversation utilise des connexions WebSocket, CORS n'a pas d'incidence dessus.

Transmission de noms de fichier

Utilisez les en-têtes suivants pour extraire le nom d'un fichier (y compris les fichiers vidéo, audio ou image) chargé sur le serveur ODA :
  • x-oda-meta-file-name
  • x-oda-meta-file-type
Vous pouvez retourner ces en-têtes avec des demandes GET ou HEAD. Utilisez HEAD si un composant personnalisé n'a pas besoin du contenu du fichier.

Messages de rétroaction

Il s'agit d'une composante de notation de la rétroaction, qui prend la rétroaction d'un utilisateur à l'aide d'une jauge de notation (généralement un système de notation en étoile). Ses données utiles sont similaires à un message texte, mais elles comportent un champ d'objet channelExtensions supplémentaire réglé à { "displayType": "stars" }. Il applique les propriétés suivantes au message de compétence.
Le nom Description Type Obligatoire?
type Type de message "text" Oui
text Texte du message chaîne Oui
channelExtensions Objet décrivant les extensions des données utiles. { “displayType”: “stars” } Oui
Par exemple :
{
    "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>"
}

Message de carte d'aptitude

Représente un ensemble de choix proposés à l'utilisateur, horizontalement sous forme de carrousels ou verticalement sous forme de listes. Il applique les propriétés suivantes au message de compétence.
Le nom Description Type Obligatoire?
type Type de message "card" Oui
layout Indique si les messages doivent être affichés horizontalement ou verticalement. chaîne (values : horizontal, vertical) Oui
cards Tableau de cartes à afficher. tableau Oui

Carte

Représente une carte dans les données utiles du message.
Le nom Description Type Obligatoire?
title Titre de la carte, affiché sur la première ligne de celle-ci. chaîne Oui
description Description de la carte chaîne Non
imageUrl URL de l'image affichée. chaîne Non
url URL du site Web ouvert par toucher. chaîne Non
actions Tableau d'actions liées au texte tableau Non
Voici un exemple :
{
    "messagePayload": {
        "type": "card",
        "layout": "horiztonal",
        "cards": [
            {
                "title": "Hawaiian Pizza",
                "description": "Ham and pineapple on thin crust",
                "actions": [
                    {
                        "type": "postback",
                        "label": "Order Small",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "hawaiian",
                                "pizzaCrust": "thin",
                                "pizzaSize": "small"
                            }
                        }
                    },
                    {
                        "type": "postback",
                        "label": "Order Large",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "hawaiian",
                                "pizzaCrust": "thin",
                                "pizzaSize": "large"
                            }
                        }
                    }
                ]
            },
            {
                "title": "Cheese Pizza",
                "description": "Cheese pizza (i.e. pizza with NO toppings) on thick crust",
                "actions": [
                    {
                        "type": "postback",
                        "label": "Order Small",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "cheese",
                                "pizzaCrust": "thick",
                                "pizzaSize": "small"
                            }
                        }
                    },
                    {
                        "type": "postback",
                        "label": "Order Large",
                        "postback": {
                            "state": "GetOrder",
                            "variables": {
                                "pizzaType": "cheese",
                                "pizzaCrust": "thick",
                                "pizzaSize": "large"
                            }
                        }
                    }
                ]
            }
        ],
        "globalActions": [
            {
                "type": "call",
                "label": "Call for Help",
                "phoneNumber": "123456789"
            }
        ]
    },
    "userId": "guest"
}

Message de republication d'aptitude

Représente une republication. Il applique les propriétés suivantes au message de compétence.
Nom Description Type Obligatoire?
type Type de message "postback" Oui
text Texte du message chaîne Non
postback Republication Une chaîne ou une valeur JSONObject Oui

Message de formulaire d'aptitude

Représente un message qui retourne les résultats d'une interrogation dans un formulaire en lecture seule. Le message se compose d'un tableau de résultats de formulaire. Chaque résultat de formulaire contient un tableau fields avec des paires clé-valeur représentant un champ. Il applique les propriétés suivantes au message de compétence.
Note

Ce type de message est utilisé pour les boîtes de dialogue SQL.
Le nom Description Type Obligatoire?
type Type de message "form" Oui
forms Tableau de résultats de formulaire. Chaque résultat contient un tableau fields qui représente les champs de formulaire. Tableau <Rangée> Oui
formColumns Nombre de colonnes dans lesquelles les champs du formulaire doivent être regroupés. 1 2 Oui
paginationInfo Informations de pagination pour les résultats dans le formulaire PaginationInfo Non
{
    "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"
        }
    ]
}

Message de la table d'aptitudes

Représente un message qui renvoie les résultats d'une interrogation sous forme de tableau Le message se compose d'un tableau d'en-têtes et d'un tableau de lignes. Les rangées elles-mêmes contiennent un tableau fields qui représente des cellules individuelles. Il applique les propriétés suivantes au message de compétence.
Note

Ce type de message est utilisé pour les boîtes de dialogue SQL.
Le nom Description Type Obligatoire?
type Type de message "table" Oui
headings Tableau d'en-têtes de table Tableau<En-tête> Oui
tableTitle Le titre du tableau chaîne Non
rows Tableau de rangées de table. Chaque ligne contient un tableau fields qui représente les cellules de la table. Tableau <Rangée> Oui
paginationInfo Informations de pagination pour les résultats du tableau PaginationInfo Non
{
    "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"
    }
}

Message de formulaire de table d'aptitudes

Ce message combine les types de message Table et Form. Il s'agit d'un message qui renvoie les résultats d'une requête sous la forme d'une table. Chaque ligne de la table comporte un formulaire en lecture seule en plus des informations sur la ligne. Il applique les propriétés suivantes au message de compétence.
Note

Ce type de message est utilisé pour les boîtes de dialogue SQL.
Le nom Description Type Obligatoire?
type Type de message "tableForm" Oui
tableTitle Le titre du tableau chaîne Non
headings Tableau d'en-têtes de table Tableau<En-tête> Oui
rows Tableau de rangées de table. Chaque ligne contient un tableau de champs qui représentent les cellules de la table. Tableau <Rangée> Oui
forms Tableau de résultats de formulaire correspondant à chaque ligne de table. Chaque formulaire contient un tableau fields qui représente les champs de formulaire. Tableau <Formulaire> Oui
formColumns Nombre de colonnes dans lesquelles les champs du formulaire doivent être regroupés. 1 2 Oui
paginationInfo Tableau d'actions globales liées au texte Tableau <Action> Non
{
    "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"
}

Message d'événement sortant d'aptitude

Représente les messages d'événement sortants qui peuvent être envoyés par le serveur. Elle applique les propriétés suivantes à Message.
Le nom Description Type Obligatoire?
type Type de message "outboundEvent" Oui
eventType Type d'événement (défini dans le catalogue d'événements) Chaîne Oui
eventVersion Version du type d'événement (définie dans le catalogue d'événements) Chaîne Oui
eventData Les données d'affaires JSONObject Oui
contextProperties Propriétés du contexte d'événement Propriétés de contexte d'événement Non
Par exemple :
{
    "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"
        }
    }
}

Message de formulaire de modification d'aptitude

Représente un message de formulaire modifiable (formulaire d'entrée). Le message comprend un tableau de champ.
Le nom Description Type Obligatoire?
type Type de message. Dans ce cas, il s'agit de "editForm". "editForm" Oui
title Titre représentatif du formulaire de modification Chaîne Non
fields Liste de champs pouvant inclure à la fois des champs modifiables et des champs en lecture seule. Tableau <Champ> Oui
formColumns Nombre de colonnes dans lesquelles les champs de formulaire doivent être regroupés. La propriété est applicable uniquement lorsque vous définissez également la propriété field. Entier Non
formRows Liste des rangées pouvant inclure à la fois des champs modifiables et des champs en lecture seule. Vous devez définir la propriété fields et formRows est requis. Ils sont mutuellement exclusifs. Tableau <FormRow>  
errorMessage Message d'erreur au niveau du formulaire qui s'affiche lorsque l'utilisateur a soumis des données non valides, mais que l'erreur ne peut pas être liée à un champ individuel. Chaîne No
actions Tableau d'actions liées au formulaire de modification. Ce tableau comprend un fichier SubmitFormAction. Une erreur s'affiche dans la console du navigateur lorsque SubmitFormAction n'est pas inclus dans le tableau actions. Tableau <Action> No
globalActions Tableau d'actions globales Tableau <Action> Non
channelExtensions Ensemble de propriétés d'extension propres au canal

L'objet channelExtensions peut inclure une propriété replaceMessage utilisée pour remplacer un formulaire d'entrée précédent.

JSONObject Non
{
    "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"
}

Message brut d'aptitude

Utilisé lorsqu'un composant crée les données utiles propres à un canal.
Le nom Description Type Obligatoire?
type Type de message "raw" Oui
payload Données utiles propres au canal Objet JSON Oui