Modèle de message

Pour utiliser des fonctionnalités telles que le mode sans interface utilisateur ou le délégué, vous devez comprendre les messages de l'utilisateur et de la brique. Tout ce qui est reçu ou envoyé par le serveur de discussion Oracle est représenté sous forme de message, qui est envoyé par l'utilisateur à la brique ou par la brique à l'utilisateur.

Il s'agit des types de base utilisés dans tous les messages envoyés par l'utilisateur à la brique, et inversement. Il s'agit des blocs de création de tous les messages.

Action

Une action correspond à un élément que l'utilisateur peut sélectionner.
Nom Description Type Requis ?
type Type d'action chaîne Oui
label Texte du libellé descriptif de l'action. chaîne Au moins un élément label ou imageUrl doit être présent.
imageUrl Image de l'action chaîne Au moins un élément label ou imageUrl doit être présent.
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

PostbackAction

Renvoie un postback prédéfini à la brique lorsque l'utilisateur sélectionne une action.
Nom Description Type Requis ?
type Type d'action "postback" Oui
postback Postback qui est renvoyé lorsque l'utilisateur sélectionne une action. 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 indiqué au nom de l'utilisateur.
Nom Description Type Requis ?
type Type d'action "appeler" 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 Requis ?
type Type d'action "appeler" 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 brique lorsqu'elle satisfait la validation côté client. Il ajoute les propriétés suivantes aux propriétés Action :
Nom Description Type Requis ?
type Type d'action "submitForm" Oui
postback Charge utile de postback, qui peut inclure une action proeprty pour déclencher la navigation. La valeur de cette propriété doit être définie dans le fichier FormSubmissionMessagePayload. <<XREF>> JSONObject Non
Exemple 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 la localisation de l'utilisateur.
Nom Description Type Requis ?
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"
}

Document joint

Représente une pièce jointe envoyée par l'utilisateur.
Nom Description Type Requis ?
type Type de pièce jointe chaîne ( valeurs valides : audio, file, image, video) Oui
url URL de téléchargement de la pièce jointe. chaîne Oui
title Nom du fichier télé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 unique dans la charge utile du message.
Nom Description Type Requis ?
title Titre de la carte, affiché en tant que première ligne sur la carte. 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 en appuyant dessus. chaîne Non
actions Tableau d'actions associées au texte tableau Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

Localisation

Représente un objet de localisation.
Nom Description Type Requis ?
title Titre de la localisation chaîne Non
URL URL permettant d'afficher la localisation 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
}

En-tête

Représente un en-tête pour les tables dans un objet Table ou Table-Form.
Nom Description Type Requis ?
label Libellé 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 tableau ou d'un champ de formulaire dans les objets Table, Form et Table-Form, fournis en tant que paire clé-valeur.
Nom Description Type Requis ?
displayType Type du champ "text", "link" Oui
label Clé de champ Chaîne Oui
value Valeur du champ Chaîne Non
linkLabel Libellé court de la valeur de 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 :
Nom Description Type Requis ?
label 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 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 Requis ?
value Valeur du champ chaîne Oui
width Pourcentage suggéré de la largeur totale disponible que le champ doit occuper dans une présentation de tableau. nombre Non
alignment Alignement de la valeur dans une colonne de tableau. L'alignement par défaut est right. "left", "center" et "right" Non

Champ Texte

Le champ de texte hérite de toutes les propriétés de champ en lecture seule. La valeur displayType de 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 :
Nom Description Type Requis ?
displayType Type du champ "link" Oui
linkLabel Libellé utilisé pour le lien hypertexte chaîne Non
imageUrl URL de l'image qui ouvre un lien lorsqu'un utilisateur clique dessus. chaîne Non

Champ multimé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 :
Nom Description Type Requis ?
displayType Type du champ "support" Oui
mediaType Type de support du champ "video", "audio", "image" Oui

Champ 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 :
Nom Description Type Requis ?
displayType Type du champ "action" Oui
action Action à effectuer 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 :
Nom Description Type Requis ?
id ID de 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 saisi de valeur. chaîne Non
required Indique si cette entrée est requise pour soumettre le formulaire boolean Non
clientErrorMessage Message d'erreur de niveau champ affiché sous le champ lorsqu'une erreur de validation côté client se produit. S'il n'est pas indiqué, le kit SDK prend par défaut la valeur editFieldErrorMessage. chaîne Non
serverErrorMessage Message d'erreur de niveau champ affiché sous le champ lorsqu'une erreur de validation côté serveur se produit. Ce message d'erreur doit être inclus dans la charge utile envoyée par la brique. chaîne Non
autoSubmit Lorsque cette option est définie sur true, le formulaire est partiellement soumis lorsque l'utilisateur a saisi 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 :
Nom Description Type Requis ?
displayType Type du champ "singleSelect" Oui
defaultValue Option par défaut Types de données primitifs (chaîne, nombre, booléen, etc.) Non
options Tableau d'options présenté à l'utilisateur. Tableau selectFieldOption Oui
layoutStyle Style de présentation 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 :
Nom Description Type Requis ?
displayType Type du champ "multiSelect" Oui
defaultValue Option par défaut Un tableau<object> de type primitif (chaîne, nombre, booléen, etc.) Non
options Tableau d'options présentées à l'utilisateur Tableau selectFieldOption Oui
layoutStyle Style de mise en page utilisé pour afficher les options. "list", "checkboxes" Non

DatePicker

Le champ du sélecteur de date hérite de toutes les propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Nom Description Type Requis ?
displayType Type du champ "datePicker" Oui
defaultValue Valeur initiale de ce champ. Le format doit être YYYY-MM-DD. chaîne Non
minDate Date minimale, ou la plus ancienne, autorisée. Le format doit être YYYY-MM-DD. chaîne Non
maxDate Date maximum, ou dernière, autorisée. Le format doit être YYYY-MM-DD. chaîne Non

TimePicker

Le champ de sélecteur d'heure hérite de certaines propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Nom Description Type Requis ?
displayType Type du champ "timePicker" Oui
defaultValue Valeur initiale de ce champ, saisie en tant que HH:mm au format 24 heures. chaîne Non
minTime Heure minimale, ou la plus ancienne, autorisée, saisie en tant que HH:mm au format 24 heures. Exemple : 00:00. chaîne Non
maxTime Heure maximale, ou dernière, autorisée, saisie 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 :
Nom Description Type Requis ?
displayType Type du champ "toggle" Oui
defaultValue Valeur sélectionnée initiale. Si vous souhaitez que le basculement soit activé initialement, définissez la valeur par défaut sur la même valeur que valueOn. chaîne Non
valueOff Valeur lorsque la bascule est désactivée chaîne Oui
valueOn Valeur lors de l'activation/désactivation chaîne Oui
labelOff Libellé de la valeur "off" chaîne Non
labelOn Libellé de la valeur "on" chaîne Non

TextInput

Le champ de saisie de texte hérite de toutes les propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
Nom Description Type Requis ?
displayType Type du champ "textInput" Oui
defaultValue Valeur initiale de ce champ chaîne non
validationRegularExpression Expression régulière indiquant le format requis pour cette entrée de texte chaîne non
multiline Indicateur déterminant si plusieurs lignes d'entrée doivent être affichées boolean non
minLength Longueur minimale d'entrée que l'utilisateur doit fournir Nombre entier non
maxLength Nombre maximum de caractères autorisés dans le champ de saisie de texte Nombre 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 :
Nom Description Type Requis ?
displayType Type du champ "numberInput" Oui
defaultValue Valeur initiale de ce champ Entier Non
minValue Plus petit nombre autorisé Entier Non
maxValue Le plus grand nombre autorisé. Entier Non

Ligne

Représente un tableau de champs.
Nom Description Type Requis ?
fields Tableau de champs Tableau <field> 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 formes imbriquées d'une ligne de table.
Nom Description Type Requis ?
title Le titre du formulaire Chaîne Non
field Tableau de champs Tableau <field> 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 Requis ?
totalCount Nombre total de résultats nombre Oui
rangeSize Taille de plage des résultats par page nombre Oui
status Message de statut de pagination chaîne Oui
currentRangeSize Taille de la plage de résultats actuelle nombre Oui
rangeStart Décalage de début de la plage de résultats actuelle nombre Oui
nextRangeSize Taille de la prochaine plage de résultats nombre Oui
hasPrevious Indique s'il existe un ensemble de résultats précédent boolean Oui
hasNext Indique s'il existe un ensemble de résultats suivant boolean Oui

Message de conversation

Tous les messages faisant partie d'une conversation ont la structure suivante :
Nom Description Type Requis ?
messagePayload Charge utile du message Message Oui
userId ID utilisateur chaîne Oui
Par exemple :
{
    "messagePayload": {
        "text": "show menu",
        "type": "text"
    },
    "userId": "guest"
}

Message

Le message est un type de base abstrait pour tous les autres messages. Tous les messages l'étendent afin de fournir des informations supplémentaires.
Nom Description Type Requis ?
type Type de message chaîne Oui

Message de l'utilisateur

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

Message texte de l'utilisateur

Message texte simple envoyé au serveur.
Nom Description Type Requis ?
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 postback de l'utilisateur

Message de réponse de postback envoyé au serveur.
Nom Description Type Requis ?
type Type de message "postback" Oui
text Texte de postback chaîne Non
postback Postback de l'action sélectionnée 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 pièce jointe de l'utilisateur

Message de réponse de pièce jointe envoyé au serveur.
Nom Description Type Requis ?
type Type de message "attachment" Oui
attachment Métadonnées de pièce jointe Document 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 utilisateur

Représente le message de soumission de formulaire envoyé après que l'utilisateur a soumis un formulaire par un SubmitFormAction. Il possède les propriétés suivantes :
Nom Description Type Requis ?
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 Charge utile de postback, qui peut inclure une propriété d'action pour déclencher la navigation. La valeur de cette propriété doit être extraite du fichier SubmitFormAction. JSONObject Non
partialSubmitField Code du champ qui déclenche une soumission partielle de formulaire. Les champs dont la propriété autoSubmit est définie sur True peuvent déclencher une soumission partielle de formulaire. Chaîne Non
Exemple 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 de localisation de l'utilisateur

Message de réponse de localisation envoyé au serveur.
Nom Description Type Requis ?
type Type de message "location" Oui
location Informations sur la localisation de l'utilisateur Localisation Oui
Par exemple :
{
    "messagePayload": {
        "location": {
            "latitude": 45.9285271,
            "longitude": 132.6101925
        },
        "type": "location"
    },
    "userId": "guest"
}

Message de brique

Représente le message envoyé à l'utilisateur à partir de la brique.

Message texte de compétence

Représente un message texte.
Nom Description Type Requis ?
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 associées au texte. tableau Non
globalActions Tableau d'actions globales associé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 de localisation

représente un message de localisation.
Nom Description Type Requis ?
type Type de message "location" Oui
location Localisation 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 associées au texte Tableau<Action> Non
globalActions Tableau d'actions globales associées au texte Tableau<Action> Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

Message de pièce jointe de compétence

Représente un message de pièce jointe.
Nom Description Type Requis ?
type Type de message "attachment" Oui
attachment Pièce jointe envoyée Document joint Oui
headerText Texte d'en-tête de la carte chaîne Non
footerText Texte du pied de page de la carte chaîne Non
actions Tableau d'actions associées au texte. tableau Non
globalActions Tableau d'actions globales associées au texte. tableau Non
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non

Message de fiche d'aptitude

Représente un ensemble de choix affiché pour l'utilisateur, soit horizontalement sous forme de carrousel, soit verticalement sous forme de liste.
Nom Description Type Requis ?
type Type de message "card" Oui
layout Indique si les messages doivent être affichés horizontalement ou verticalement. chaîne (valeurs : horizontal, vertical) Oui
cards Tableau des cartes à afficher. tableau Oui
headerText Texte d'en-tête des cartes chaîne Non
actions Tableau d'actions associées au texte. tableau Non
globalActions Tableau d'actions globales associé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 des aptitudes

Représente un message qui renvoie les résultats d'une requête sous forme de tableau Le message se compose d'un tableau d'en-têtes et d'un tableau de lignes. Les lignes elles-mêmes contiennent un tableau fields qui représente des cellules individuelles.
Remarque

Ce type de message est utilisé pour les boîtes de dialogue SQL.
Nom Description Type Requis ?
type Type de message "table" Oui
headings Tableau d'en-têtes de table Tableau<En-tête> Oui
rows Tableau de lignes de table. Chaque ligne contient un tableau fields qui représente les cellules du tableau. Tableau<Ligne> Oui
paginationInfo Informations de pagination pour les résultats dans la table PaginationInfo Non
actions Tableau d'actions associé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 de compétence

Représente un message qui renvoie les résultats d'une requête 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.
Remarque

Ce type de message est utilisé pour les boîtes de dialogue SQL.
Nom Description Type Requis ?
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<Ligne> 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 associé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"
        }
    ]
}

Tableau des compétences - Message de formulaire

Ce message combine les types de message Table et Form. Il représente un message qui renvoie les résultats d'une requête sous la forme d'une table. Chaque ligne de la table possède un formulaire en lecture seule en plus des informations de ligne.
Remarque

Ce type de message est utilisé pour les boîtes de dialogue SQL.
Nom Description Type Requis ?
type Type de message "tableForm" Oui
headings Tableau d'en-têtes de table Tableau<En-tête> Oui
rows Tableau de lignes de table. Chaque ligne contient un tableau de champs représentant les cellules du tableau. Tableau<Ligne> Oui
forms Tableau de résultats de formulaire correspondant à chaque ligne du tableau. Chaque formulaire contient un tableau fields qui représente les champs du 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 associé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 se compose d'un tableau Field. Il possède les propriétés suivantes
Nom Description Type Requis ?
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 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. Entier (1)

Le kit SDK ne prend en charge qu'une seule colonne pour la version 23.06.

Non
errorMessage Message d'erreur de niveau 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 un élément SubmitFormAction Une erreur s'affiche dans la console du navigateur lorsque l'élément 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 la charge utile propre au canal lui-même.
Nom Description Type Requis ?
type Type de message "raw" Oui
payload Charge utile propre au canal JSONObject Oui
channelExtensions Propriétés d'extension propres au canal associées au message JSONObject Non