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.
Action
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
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 |
{
"type": "postback",
"label": "Large Pizza",
"imageUrl": "https://example.com/images/gallery/locations/11.jpg",
"postback": {
"state": "askSize",
"action": "getCrust"
}
}
CallAction
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | "appeler" | 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.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | "appeler" | 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
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 |
{
"type": "submitForm",
"label": "Submit",
"postback": {
"system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
"system.flow": "ExpenseFlow",
"system.state": "editFormMapVar"
}
}
Document joint
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 |
{
"type": "image",
"url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}
Carte
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
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 |
{
"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
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
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
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
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
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
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "support" | Oui |
mediaType |
Type de support du champ | "video" , "audio" , "image" |
Oui |
Champ Action
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
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
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
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
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
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
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
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
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
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
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
Nom | Description | Type | Requis ? |
---|---|---|---|
messagePayload |
Charge utile du message | Message | Oui |
userId |
ID utilisateur | chaîne | Oui |
{
"messagePayload": {
"text": "show menu",
"type": "text"
},
"userId": "guest"
}
Message de l'utilisateur
Représente un message envoyé par l'utilisateur à la brique.
Message texte de l'utilisateur
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "text" |
Oui |
text |
Texte du message | chaîne | Oui |
{
"messagePayload": {
"text": "Order Pizza",
"type": "text"
},
"userId": "guest"
}
Message de postback de l'utilisateur
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 |
{
"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
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "attachment" |
Oui |
attachment |
Métadonnées de pièce jointe | Document joint | Oui |
{
"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
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 |
{
"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
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "location" |
Oui |
location |
Informations sur la localisation de l'utilisateur | Localisation | Oui |
{
"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
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 |
{
"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
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
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
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
fields
qui représente des cellules individuelles.
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
fields
avec des paires clé-valeur représentant un champ.
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
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.
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
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 |
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
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 |