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 une propriété label ou imageUrl doit être présente.
imageUrl Image de l'action chaîne Au moins une propriété label ou imageUrl doit être présente.
channelExtensions Propriétés d'extension propres au canal associées au message 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. Une chaîne ou JSONObject 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.

Nom Description Type Obligatoire?
type Type d'action "call" Oui
URL URL du site Web affiché. chaîne Oui
Par exemple :
{
    "type": "url",
    "label": "Open URL",
    "imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
    "url": "https://example.com/images/gallery/locations/11.jpg",
}

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 :
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. <<XREF>> JSONObject Non
Exemple de JSON
{
    "type": "submitForm",
    "label": "Submit",
    "postback": {
        "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
        "system.flow": "ExpenseFlow",
        "system.state": "editFormMapVar"
    }
}

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"
}

Fichier joint

Représente un fichier joint envoyé par l'utilisateur.
Le nom Description Type Obligatoire?
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
title Nom du fichier chargé chaîne Non
Par exemple :
{
    "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
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non
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
}

Titre

Représente un en-tête pour les tables d'un objet Table ou Table-Form.
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.
Nom Description Type Obligatoire?
displayType Type de champ "text", "link" Oui
label La clé du champ Chaîne Oui
value Valeur du champ Chaîne Non
linkLabel Étiquette abrégée de la valeur du lien si displayType est link. Chaîne Non
alignment Positionnement de l'étiquette dans sa cellule "left", "right", "center" Non
width Pourcentage suggéré de la largeur du tableau qui doit être fourni au champ   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 avec les propriétés suivantes :
Le 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 :
Le 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

Champ de texte

Le champ de texte hérite de toutes les propriétés de champ en lecture seule. La valeur displayType pour ce champ est "text".

Champ de lien

Le champ de lien hérite de toutes les propriétés de champ en lecture seule. Il possède les propriétés supplémentaires suivantes :
Le 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. Il 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. Il 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 partiellement 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

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

DatePicker

Le champ de sélecteur de date hérite de toutes les propriétés du champ modifiable et comporte 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 de certaines des propriétés du champ modifiable et comporte 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 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 "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 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 "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

rangée

Représente un tableau de champs.
Le nom Description Type Obligatoire?
fields Un tableau de champs Tableau <champ> Oui
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?
title Le titre du formulaire Chaîne Non
field Un tableau de champs Tableau <champ> Oui
actions Tableau d'actions Tableau <BotsAction> Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

PaginationInfo

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

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

Message de conversation

Tous les messages d'une conversation ont la structure suivante :
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.
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.
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 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 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 :
Le 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é autoSubmit est réglée à Vrai 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 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.

Message texte d'aptitude

Représente un message texte.
Le nom Description Type Obligatoire?
type Type de message "text" Oui
text Texte du message chaîne Oui
headerText Texte d'en-tête des cartes chaîne Non
footerText Texte de pied de page des cartes chaîne Non
actions Tableau d'actions liées au texte. tableau Non
globalActions Tableau d'actions globales liées au texte. tableau Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non
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"
                }
            }
        ],
        "channelExtensions": {
            "displayType":"stars"
         }
    },
    "userId": "guest",
    "msgId": "message_id",
    "source": "BOT"
}

Message d'emplacement

représente un message d'emplacement.
Le nom Description Type Obligatoire?
type Type de message "location" Oui
location Emplacement location Non
headerText Texte d'en-tête du message chaîne Non
footerText Texte de pied de page du message chaîne Non
actions Tableau d'actions liées au texte Tableau <Action> Non
globalActions Tableau d'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 de fichier joint à l'aptitude

Représente un message avec fichier joint.
Nom Description Type Obligatoire?
type Type de message "attachment" Oui
attachment Fichier joint envoyé Fichier joint Oui
headerText Texte d'en-tête de la carte chaîne Non
footerText Texte de pied de page de la carte chaîne Non
actions Tableau d'actions liées au texte. tableau Non
globalActions Tableau d'actions globales liées au texte. tableau Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

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.
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
headerText Texte d'en-tête des cartes chaîne Non
actions Tableau d'actions liées au texte. tableau Non
globalActions Tableau d'actions globales liées au texte. tableau Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non
{
    "messagePayload": {
        "type": "card",
        "layout": "horizontal",
        "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",
    "msgId": "message_id",
    "source": "BOT"
    }

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.
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
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
actions Tableau d'actions liées à la table Tableau <Action> Non
globalActions Tableau d'actions globales Tableau <Action> Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non
{
    "type":"table",
    "headerText":"A-Team",
    "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 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.
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
actions Tableau d'actions liées au formulaire Tableau <Action> Non
globalActions Tableau d'actions globales Tableau <Action> Non
channelExtensions Propriétés d'extension propres au canal associées au message A JSONObject 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 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.
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
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
actions Tableau d'actions liées au formulaire de table Tableau <Action> Non
globalActions Tableau d'actions globales Tableau <Action> Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non
{
    "type":"tableForm",
    "headerText":"A-Team",
    "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 de formulaire de modification d'aptitude

Représente un message de formulaire modifiable (formulaire d'entrée). Le message comprend un tableau de champ. Comporte les propriétés suivantes
Le nom Description Type Obligatoire?
type Type de message. Dans ce cas, il s'agit de "editForm". "editForm" Oui
fields Liste de champs pouvant inclure à la fois des champs modifiables et des champs en lecture seule. Tableau <Champ> Oui
title Titre représentatif du formulaire de modification Chaîne Non
formColumns Nombre de colonnes dans lesquelles les champs de formulaire doivent être regroupés. Nombre entier (1)

La trousse SDK ne prend en charge qu'une seule colonne pour la version 23.06.

Non
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 Non
actions Tableau d'actions liées au formulaire de modification. Ce tableau doit inclure SubmitFormAction Une erreur s'affiche dans la console du navigateur lorsque SubmitFormAction n'est pas inclus dans le tableau actions. Tableau <Action> Non
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.
Nom Description Type Obligatoire?
type Type de message "raw" Oui
payload Données utiles propres au canal JSONObject Oui
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non