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.
Fichier joint
| 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 |
{
"type": "image",
"url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}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 |
{
"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
}Action
| 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.
|
PostbackAction
| Le 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 |
{
"type": "postback",
"label": "Large Pizza",
"imageUrl": "https://example.com/images/gallery/locations/11.jpg",
"postback": {
"state": "askSize",
"action": "getCrust"
}
}CallAction
| Le nom | Description | Type | Obligatoire? |
|---|---|---|---|
type |
Type d'action | "call" |
Oui |
phoneNumber |
Numéro de téléphone à appeler | chaîne | Oui |
{
"type": "call",
"label": "Call Support",
"imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
"phoneNumber": "18005555555"
}urlAction
Demande au client d'ouvrir un site Web dans un nouvel onglet ou dans un navigateur intégré à l'application.
| Le nom | Description | Type | Obligatoire? |
|---|---|---|---|
type |
Type d'action | "call" | Oui |
URL |
URL du site Web affiché. | chaîne | Oui |
{
"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
| Le nom | Description | Type | Obligatoire? |
|---|---|---|---|
type |
Type d'action | "submitForm" |
Oui |
postback |
Données utiles de republication, qui peuvent inclure une action pour déclencher la navigation. La valeur de cette propriété doit être définie dans formSubmissionPayload.
|
JSONObject | Non |
{
"type": "submitForm",
"label": "Submit",
"postback": {
"system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
"system.flow": "ExpenseFlow",
"system.state": "editFormMapVar"
}
}Carte
| 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 |
Titre
Table ou Table-Form.
| Le nom | Description | Type | Obligatoire? |
|---|---|---|---|
label |
L'étiquette d'en-tête | Chaîne | Oui |
alignment |
Positionnement de l'étiquette dans la cellule | "left", "right", "center" |
Oui |
width |
Pourcentage suggéré de la largeur du tableau qui doit être fourni à l'en-tête. | Non | |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
Champ
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
| 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
| 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 |
Dans la version 23.06 d'Oracle Digital Assistant, les champs en lecture seule ne s'affichent pas dans les formulaires d'entrée, même s'ils sont reçus dans les données utiles du message.
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 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 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 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
| 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 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 Array<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 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 | Array<SelectFieldOption> |
Oui |
layoutStyle |
Style de disposition utilisé pour afficher les options. | "list", "checkboxes"
|
Non |
DatePicker
| 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 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 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 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 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
| 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
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.
| Le nom | Description | Type | Obligatoire? |
|---|---|---|---|
totalCount |
Nombre total de résultats | nombre | Oui |
rangeSize |
Taille de l'intervalle des résultats par page | nombre | Oui |
status |
Message de statut de pagination | chaîne | Oui |
currentRangeSize |
Taille de l'intervalle de résultats courant | nombre | Oui |
rangeStart |
Décalage de début de l'intervalle de résultats courant | nombre | Oui |
nextRangeSize |
Taille de l'intervalle de résultats suivant | nombre | Oui |
hasPrevious |
Indique s'il existe un jeu de résultats précédent | booléen | Oui |
hasNext |
Indique s'il existe un jeu de résultats suivant | booléen | Oui |
Message de conversation
| Nom | Description | Type | Obligatoire? |
|---|---|---|---|
messagePayload |
Données utiles du message | Message | Oui |
userId |
ID utilisateur | chaîne | Oui |
{
"messagePayload": {
"text": "show menu",
"type": "text"
},
"userId": "guest"
}Message d'utilisateur
Représente un message envoyé par l'utilisateur à la compétence.
Message texte d'utilisateur
| Nom | Description | Type | Obligatoire? |
|---|---|---|---|
type |
Type de message | "text" |
Oui |
text |
Texte du message | chaîne | Oui |
{
"messagePayload": {
"text": "Order Pizza",
"type": "text"
},
"userId": "guest"
}Message de republication d'utilisateur
| 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 |
{
"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
| Nom | Description | Type | Obligatoire? |
|---|---|---|---|
type |
Type de message | "attachment" |
Oui |
attachment |
Métadonnées du fichier joint | Fichier joint | Oui |
{
"messagePayload": {
"attachment": {
"type": "image",
"url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
},
"type": "attachment"
},
"userId": "guest"
}Message d'emplacement d'utilisateur
| Le nom | Description | Type | Obligatoire? |
|---|---|---|---|
type |
Type de message | "location" |
Oui |
location |
Informations sur l'emplacement de l'utilisateur | Emplacement | Oui |
{
"messagePayload": {
"location": {
"latitude": 45.9285271,
"longitude": 132.6101925
},
"type": "location"
},
"userId": "guest"
}Message de soumission de formulaire d'utilisateur
| 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 à true peuvent déclencher une soumission partielle de formulaire.
|
Chaîne | Non |
{
"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 la compétence
Représente le message envoyé par la compétence à l'utilisateur.
| Le nom | Description | Type | Obligatoire? |
|---|---|---|---|
type |
Type de message | chaîne | Oui |
Message brut d'aptitude
| Le 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 |
Message texte d'aptitude
| 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. "displayType" : "stars" identifie le composant de rétroaction.
|
JSONObject | Non |
{
"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"
"userId": "guest",
"msgId": "message_id",
"source": "BOT"
}Message de fichier joint à l'aptitude
| Le 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
| Le nom | Description | Type | Obligatoire |
|---|---|---|---|
type |
Type de message | "card" |
Oui |
layout |
Indique si les messages doivent être affichés horizontalement ou verticalement. | chaîne (values : horizontal, vertical)
|
Oui |
cards |
Tableau de cartes à afficher. | tableau | Oui |
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"
}Message de la table d'aptitudes
fields qui représente des cellules individuelles.
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
fields avec des paires clé-valeur représentant un champ.
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 | JSONbject | 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
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.
Ce type de message est utilisé pour les boîtes de dialogue SQL.
| 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
| 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 un fichier 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 |
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"
}