Modèle de message
Le kit SDK utilise un modèle de message typé cohérent pour tout le trafic. La compréhension des types d'enveloppe et de charge utile est importante pour les intégrations headless, les délégués, le rendu personnalisé et les tests. Tous les éléments de conversation sont des messages avec une enveloppe standard :
{
"messagePayload": { /* see types below */ },
"userId": "guest"
}
détermine la forme de charge utile concrète.messagePayload.type
- Les messages utilisateur sont lancés par le client ; les messages de réponse proviennent de la brique ou de l'agent.
Types de base
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 : les variantes incluent
call
,client
,location
,popup
,postback
,share
,submitForm
,url
- Pièce jointe :
audio
,file
, image
,video
- Carte : titre : description,
imageUrl
,actions
- Emplacement :
latitude
,longitude
,optional title/url
- Voix :
text
,longText
,soundUrl
- Champ :
(link
,text
,media
,action
en lecture seule et modifiable (textInput
,numberInput
,datePicker
,timePicker
,singleSelect
,multiSelect
,toggle)
) SelectFieldOption
:label
,value
TableHeading
TableRow
Form
FormRow
FormColumn
PaginationInfo
EventContextProperties
Types de charge utile de message utilisateur
- Texte
{ "type": "text", "text": "Order Pizza" }
- Document joint
{ "type": "attachment", "attachment": { "type": "image", "URL": "https://..." } }
- Localisation
{ "type": "location", "location": { "latitude": 45.9, "longitude": 132.6 } }
- Postback
{ "type": "postback", "text": "Small", "postback": { "variables": { "pizza": "Small" }, "system.botId": "....", "system.state": "orderPizza" } }
- Evénement entrant
{ "type": "inboundEvent", "eventType": "com.pizzastore.pizza.orderserved", "eventVersion": "1.0", "eventData": { "size": "Medium", "type": "Cheese" }, "contextProperties": { "id": "6ce23f...", "source": "pizza/service" } }
- Soumission de formulaire
{ "type": "formSubmission", "submittedFields": { "Subject": "Expense", "Amount": 6 }, "partialSubmitField": "Attendees", "postback": { "system.state": "editFormMapVar" } }
Messages de réponse
Les charges utiles de réponse de la brique/de l'agent incluent :
- Texte
{ "type": "text", "text": "What do you want to do?" }
- Document joint
{ "type": "attachment", "attachment": { "type": "file", "url": "https://..." } }
- Carte
{ "type": "card", "layout": "horizontal", "cards": [{ "title": "Hawaiian Pizza", "actions": [/*...*/] }] }
- Commande
{ "type": "command", "command": "someCommand", "properties": { "k": "v" } }
- Erreur
{ "type": "error", "errorMessage": "Details...", "error": "..." }
- Exécuter la commande de contexte d'application
{ "type": "executeApplicationActionCommand", "actionType": "navigate", "command": "executeApplicationAction", "context": "appName", "properties": { "route": "/home" } }
- Commentaires (étoiles)
{ "type": "text", "text": "How would you like to rate us?", "channelExtensions": { "displayType": "stars" }, "actions": [/* star postbacks */] }
- Localisation
{ "type": "location", "location": { "latitude": 37.53, "longitude": -122.26 } }
- Evénement sortant
{ "type": "outboundEvent", "eventType": "com.pizzastore.pizza.ordercreated", "eventVersion": "1.0", "eventData": { "size": "Medium" } }
- RAW
{ "type": "raw", "payload": { /* channel specific */ } }
- Session fermée
{ "type": "sessionClosed" }
- Flux de texte
{ "type": "texStream", "streamId": "123", "streamState": "running", "text": "partial chunk", "aggregateText": "accumulated text so far" }
- Edit-Form prend en charge
replaceMessage
viachannelExtensions
.
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 l'un des éléments label ou imageUrl doit être inclus.
|
imageUrl |
Image de l'action | chaîne | Au moins une seule propriété label ou imageUrl doit être incluse.
|
style |
Style de rendu du bouton | "primary" , "danger" , "default" |
Non |
displayType |
Rendu du type d'élément d'action (bouton, lien ou icône) | "button" , "link" , "icon" |
Non |
channelExtensions |
Propriétés d'extension propres au canal associées à l'action | JSONObject | Non |
CallAction
Demande au client d'appeler un numéro de téléphone indiqué au nom de l'utilisateur.
Par exemple :
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"
}
LocationAction
Demande au client de demander la localisation de l'utilisateur.
Par exemple :
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | "location" | Oui |
{
"type": "location",
"label": "Share location",
"imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}
PopupAction
Cette action ouvre une fenêtre contextuelle une fois que les utilisateurs ont effectué une action de clic sur un élément.
PopupAction
utilise les propriétés Action
avec ses propres propriétés :
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | "popup" |
Oui |
popupContent |
Contenu affiché dans la fenêtre contextuelle. | Charge utile du message (reportez-vous à l'exemple JSON suivant) | Oui |
{
"type": "popup",
"label": "Give Feedback",
"popupContent": {
"formRows": [
{
"columns": [
{
"width": "stretch",
"fields": [
{
"displayType": "text",
"label": "What was the issue with this response?"
},
{
"displayType": "multiSelect",
"options": [
{
"label": "Inaccurate",
"value": "inaccurate"
},
{
"label": "Inappropriate",
"value": "inappropriate"
}
],
"id": "system_feedback_reasons",
"required": true
},
{
"displayType": "textInput",
"id": "system_feedback_comments",
"placeholder": "Additional feedback"
}
]
}
]
},
{
"columns": [
{
"fields": [
{
"displayType": "action",
"action": {
"postback": {
"rating": "negative",
"action": "cancel",
},
"label": "Cancel",
"type": "postback"
},
}
]
},
{
"fields": [
{
"displayType": "action",
"action": {
"postback": {
"rating": "negative",
"system.state": "invokeLLM"
},
"label": "Submit Feedback",
"type": "submitForm"
},
}
]
}
]
}
],
"type": "editForm",
"title": "Give your feedback",
"formColumns": 1,
}
}
PostbackAction
Renvoie un postback prédéfini à la brique lorsque l'utilisateur sélectionne une action.
Par exemple :
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 objet JSON | Oui |
{
"type": "postback",
"label": "Large Pizza",
"imageUrl": "https://example.com/images/gallery/locations/11.jpg",
"postback": {
"state": "askSize",
"action": "getCrust"
}
}
ShareAction
Demande au client d'ouvrir une boîte de dialogue de partage pour l'utilisateur.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | "partager" | Oui |
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 :
Exemple JSON
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 .
|
JSONObject | Non |
{
"type": "submitForm",
"label": "Submit",
"postback": {
"system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
"system.flow": "ExpenseFlow",
"system.state": "editFormMapVar"
}
}
Document joint
Représente une pièce jointe envoyée par l'utilisateur.
Par exemple :
Nom | Description | Type | Requis ? |
---|---|---|---|
title |
Titre de la pièce jointe | chaîne | Non |
type |
Type de pièce jointe | chaîne (valeurs valides : audio, fichier, image, vidéo) | Oui |
url |
URL de téléchargement de la pièce jointe. | chaîne | Oui |
{
"title": "Oracle Open World Promotion",
"type": "image",
"url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}
Carte
Représente une carte 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.
Par exemple :
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 |
{
"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
}
Reconnaissance vocale
Représente une information vocale dans un message
.
Nom | Description | Type | Requis ? |
---|---|---|---|
text |
Texte de synthèse pour TTS | chaîne | Vous devez transmettre au moins une des propriétés |
longText |
Texte détaillé pour TTS | chaîne | Vous devez transmettre au moins une des propriétés |
soundUrl |
URL d'un fichier son à lire | chaîne | Vous devez transmettre au moins une des propriétés |
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 | Chaîne | Oui |
label |
Clé de champ | Chaîne | Oui |
marginTop |
Espace vertical entre ce champ et le champ précédent dans la même colonne | "none" , "medium" ,"large" |
Non |
labelFontSize |
Taille de police utilisée pour le libellé du champ | "small" , "medium" , "large" |
Non |
labelFontWeight |
Positionnement de l'étiquette dans sa cellule | "light" , "medium" , "bold" |
Non |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
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 |
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 |
onHoverPopupContent |
Contenu qui s'affiche lorsque les utilisateurs survolent un champ. | Charge utile de message | Non |
Champ Texte
Le champ de texte hérite de toutes les propriétés de champ en lecture seule.
.
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type d'élément. | text (valeur de chaîne)
|
Oui |
truncateAt |
Position à laquelle le texte long est tronqué et où un point de suspension (qui indique que la valeur a été tronquée) s'affiche. | Nombre | Non |
fontSize |
Taille de police utilisée pour la valeur du champ | "small" , "medium" , "large" |
Non |
fontWeight |
Poids de police utilisé pour la valeur du champ | "light" , "medium" , "bold" |
Non |
Champ de lien
Le champ de lien hérite de toutes les propriétés de champ en lecture seule et possède les propriétés supplémentaires suivantes :
Nom | Description | Type | 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 et 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 et 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 soumis automatiquement 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 disposition utilisé pour afficher les options de sélection unique. La présentation par défaut est list .
|
"list" , "radioGroup" |
Non |
layoutDirection |
Sens de mise en page (horizontal ou vertical) des boutons radio lorsque layoutStyle est défini sur radioGroup . Par défaut, la direction de mise en page est définie sur vertical, , mais vous pouvez la définir sur horizontal .
|
Chaîne | Non |
Sélection multiple
Le champ à sélection multiple hérite de toutes les propriétés du champ modifiable et possède les propriétés supplémentaires suivantes :
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 |
layoutDirection |
Sens de mise en page (horizontal ou vertical) des cases à cocher lorsque layoutStyle est défini sur checkboxes . Par défaut, la direction de mise en page est définie sur vertical , mais vous pouvez également la définir sur horizontal .
|
Chaîne | Non |
DatePicker
Le champ de sélecteur de date hérite des propriétés 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 de temps hérite des propriétés 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 des propriétés 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" . Renvoie à text si le style d'entrée n'a pas été défini.
|
chaîne | non |
NumberInput
Le champ d'entrée numérique hérite des propriétés 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 |
selectFieldOption
Les champs Sélection unique et Sélection multiple utilisent une liste d'options de champ 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 |
TableHeading
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 |
TableRow
Représente un tableau de champs.
Nom | Description | Type | Requis ? |
---|---|---|---|
fields |
Tableau de champs | <Champ> | Oui |
selectAction |
Action exécutée lorsque la ligne est sélectionnée. Le libellé de l'action s'affiche sous forme d'info-bulle lorsque les utilisateurs survolent la ligne. | Action | Non |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
Formulaire
Représente un tableau de champs avec un titre. Utilisé dans les messages
Table-Form
pour les formes imbriquées d'une ligne de table.
Nom | Description | Type | Requis ? |
---|---|---|---|
id |
ID du formulaire | Chaîne | Non |
title |
Le titre du formulaire | Chaîne | Non |
fields |
Tableau de champs | Tableau <Champ> | Oui |
actions |
Tableau d'actions | Tableau <BotsAction> | Non |
separator |
Indique si un séparateur doit être affiché pour le formulaire. Si cette valeur n'est pas transmise, un séparateur s'affiche pour le formulaire. | booléen | Non |
formRows |
Liste de lignes pouvant inclure des champs modifiables et en lecture seule. Vous pouvez définir la liste des champs (à l'aide des propriétés fields et éventuellement formColumns ) ou une liste de lignes à l'aide de cette propriété. fields et formRows sont mutuellement exlusifs.
|
Action | Non |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
FormRow
Nom | Description | Type | Requis ? |
---|---|---|---|
id |
ID de la ligne de formulaire | Chaîne | Non |
columns |
Liste des colonnes affichées dans la ligne du formulaire. | Tableau <FormColumn> | Oui |
selectAction |
Actions exécutées lorsque le formulaire a été sélectionné. Lorsque les utilisateurs survolent le formulaire, le libellé de l'action s'affiche sous la forme d'une info-bulle (si elle est prise en charge par le canal). | Action | Non |
separator |
La définition de cette propriété sur True insère une ligne de séparation au-dessus du contenu dans la ligne du formulaire. | Valeur booléenne | Non |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
FormColumn
Nom | Description | Type | Requis ? |
---|---|---|---|
id |
ID de la colonne | Chaîne | Non |
fields |
Liste des champs qui s'affichent verticalement dans la colonne. Ces champs doivent être des instances ReadOnlyField lorsque la colonne est utilisée dans un élément FormRow dans un élément Form . Les champs peuvent être à la fois en lecture seule et modifiables lorsque FormRow est utilisé dans un élément EditFormMessagePayload .
|
Tableau<Champ> | Oui |
verticalAlignment |
Alignement vertical de la colonne par rapport aux autres colonnes de la même ligne de formulaire. | Chaîne | Non |
width |
Détermine la largeur de la colonne dans la ligne du formulaire. Les valeurs autorisées sont auto (valeur par défaut) et stretch . Lorsqu'elle est définie sur stretch , la colonne prend toute la largeur restante après l'affichage des colonnes à largeur automatique. Si plusieurs colonnes sont définies sur stretch , elles divisent uniformément la largeur restante.
|
Chaîne | Non |
widthPct |
Passé lorsque la largeur est définie sur Fixe. Définit la propriété de largeur de l'élément de colonne sur la valeur de pourcentage transmise. | nombre | Non |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
EventContextProperties
Les propriétés de contexte d'événement représentent les propriétés de contexte
CloudEvent
.
Nom | Description | Type | Requis ? | Exemple |
---|---|---|---|---|
dataschema |
Identifie le schéma auquel les données adhèrent. | URI | Non | "/dw/approval_payload.json" |
datacontenttype |
Type de contenu des données dans l'attribut de données. | Chaîne | Non | "application/json" |
source |
Ressource ayant généré l'événement. | URI | Non |
"objectstorage" |
time |
Heure de l'événement exprimée au format d'horodatage RFC 3339. | Horodatage | Non | "2021-01-10T21:19:24Z" |
specversion |
Version de la spécification CloudEvents. | Chaîne | Non | "1.0" |
id |
ID de la spécification CloudEvents. | Chaîne | Non | "123e4567-e89b-12d3-a456-426614174000" |
subject |
Objet de l'événement dans le contexte du producteur et/ou du type d'événement. | Chaîne | Non | "mynewfile.jpg" |
Message de conversation
Tous les messages faisant partie d'une conversation ont la structure suivante :
Par exemple :
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
Message texte simple envoyé au serveur.
Par exemple :
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 pièce jointe de l'utilisateur
Message de réponse de pièce jointe envoyé au serveur.
Par exemple :
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "attachment" |
Oui |
attachment |
Métadonnées de pièce jointe | Pièce jointe | Oui |
{
"messagePayload": {
"attachment": {
"type": "image",
"url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
},
"type": "attachment"
},
"userId": "guest"
}
Message de postback de l'utilisateur
Message de réponse de postback envoyé au serveur.
Par exemple :
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 localisation de l'utilisateur
Message de réponse de localisation envoyé au serveur.
Par exemple :
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 inboundEvent de l'utilisateur
Représente les messages d'événement sortants pouvant être envoyés au serveur. Il applique les propriétés suivantes au fichier
Par exemple :
Message
.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "inboundEvent" |
Oui |
eventType |
Le type d'événement (défini dans le catalogue d'événements) | Chaîne | Oui |
eventVersion |
Version du type d'événement (définie dans le catalogue d'événements) | Chaîne | Oui |
eventData |
Les données d'activité | JSONObject | Oui |
contextProperties |
Propriétés de contexte d'événement | Propriétés de contexte d'événement | Non |
{
"messagePayload": {
"eventData": {
"size": "Medium",
"type": "Cheese"
},
"eventVersion": "1.0",
"eventType": "com.pizzastore.pizza.orderserved",
"type": "inboundEvent",
"contextProperties": {
"id": "6ce23f09-bff7-4369-8467-0c510e971aaf",
"source": "pizza/service",
}
},
"userId": "guest"
}
Message de soumission de formulaire 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 :
Exemple JSON
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é autoSumbit 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"
}
Messages de réponse
Représente le message envoyé à l'utilisateur par la brique ou l'agent.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | chaîne | Oui |
headerText |
Texte d'en-tête affiché au-dessus du texte du message. | chaîne | Non |
footerText |
Texte du pied de page affiché sous le texte du message et les actions, mais avant les actions globales. | chaîne | Non |
actions |
Liste des actions associées au message | Array<Action> |
Non |
footerForm |
Présentation de formulaire qui s'affiche sous le texte de pied de page du message et au-dessus de ses actions globales. | Message de formulaire de compétence | Non |
globalActions |
Liste des actions globales liées au texte | Tableau<Action> | Non |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
Message de pièce jointe de compétence
Représente un message de pièce jointe. Il applique les propriétés suivantes aux messages de réponse.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "attachment" |
Oui |
attachment |
Pièce jointe envoyée | Pièce jointe | Oui |
Remarque
Les téléchargements de fichier à partir du site hôte risquent d'échouer et de générer une erreur de console semblable à ce qui suit :
Les téléchargements de fichier à partir du site hôte risquent d'échouer et de générer une erreur de console semblable à ce qui suit :
https://<oda-instance>/chat/v1/attachments from origin <client site> has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource
En effet, les paramètres CORS (Cross-Origin Resource Sharing) du site hôte, qui bloquent toutes les demandes HTTP inter-origine, peuvent également bloquer les demandes de téléchargement à partir de l'instance client vers le serveur de pièce jointe Oracle Digital Assistant. Si vous rencontrez ce problème, mettez à jour la stratégie de sécurité du site hôte pour autoriser le domaine de l'instance Digital Assistant. La conversation utilisant des connexions WebSocket, CORS n'a pas d'impact sur elle.
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. Il applique les propriétés suivantes aux messages de réponse.
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 |
Charge utile du message de la commande de réponse aux compétences
Représente une charge utile de message de commande.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "command" |
Oui |
command |
Commande à exécuter | chaîne | Oui |
properties |
Carte des paires clé-valeur | JSONObject | Oui |
Charge utile du message d'erreur de réponse de compétence
Représente une charge utile de message d'erreur qui fournit un retour aux clients sur les erreurs dans le back-end.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "error" |
Oui |
errorMessage |
Message d'erreur | chaîne | Oui |
error |
java.lang.Error object |
chaîne | Non |
Charge utile du message ExecuteApplicationContextCommand de réponse de compétence
Il s'agit de la charge utile d'un message d'exécution de commande d'action d'application.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "executeApplicationActionCommand" |
|
actionType |
Type d'action | "custom", "navigate", "query", "updateFields" |
Oui |
command |
Exécuter la commande d'action de l'application | "executeApplicationAction" |
Oui |
context |
Nom du contexte de l'application | chaîne | Oui |
customAction |
Requis lorsque actionType est 'custom' |
chaîne | Non |
properties |
Paires clé-valeur pouvant être utilisées comme arguments lors de l'exécution de l'action | JSONObject | Non |
Messages de retour
Il s'agit d'un composant d'évaluation du retour, qui prend le retour d'un utilisateur à l'aide d'une jauge d'évaluation (généralement un système d'évaluation par étoiles). Sa charge utile est similaire à un message text, mais elle comporte un champ d'objet
Par exemple :
channelExtensions
supplémentaire défini comme { "displayType": "stars" }
. Il applique les propriétés suivantes aux messages de réponse.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "text" |
Oui |
text |
Texte du message | chaîne | Oui |
channelExtensions |
Objet décrivant les extensions de la charge utile. | { “displayType”: “stars” } |
Oui |
{
"messagePayload":{
"text":"How would you like to rate us?",
"type":"text",
"actions":[
{
"postback":{
"variables":{
"rating":"1"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"1",
"system.state":"giveFeedback"
},
"label":"1",
"type":"postback"
},
{
"postback":{
"variables":{
"rating":"2"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"2",
"system.state":"giveFeedback"
},
"label":"2",
"type":"postback"
},
{
"postback":{
"variables":{
"rating":"3"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"3",
"system.state":"giveFeedback"
},
"label":"3",
"type":"postback"
},
{
"postback":{
"variables":{
"rating":"4"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"4",
"system.state":"giveFeedback"
},
"label":"4",
"type":"postback"
},
{
"postback":{
"variables":{
"rating":"5"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"5",
"system.state":"giveFeedback"
},
"label":"5",
"type":"postback"
}
],
"channelExtensions":{
"displayType":"stars"
}
},
"source":"BOT",
"userId":"<userID>"
}
Message de lieu de compétence
Représente un message de localisation. Il applique les propriétés suivantes aux messages de réponse.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "location" |
Oui |
location |
Localisation | Localisation | Oui |
Message d'événement sortant de compétence
Représente les messages d'événement sortants qui peuvent être envoyés par le serveur. Il applique les propriétés suivantes au fichier
Par exemple :
Message
.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "outboundEvent" |
Oui |
eventType |
Le type d'événement (défini dans le catalogue d'événements) | Chaîne | Oui |
eventVersion |
Version du type d'événement (définie dans le catalogue d'événements) | Chaîne | Oui |
eventData |
Les données d'activité | JSONObject | Oui |
contextProperties |
Propriétés de contexte d'événement | Propriétés de contexte d'événement | Non |
{
"messagePayload": {
"eventData": {
"size": "Medium",
"type": "Cheese"
},
"eventVersion": "1.0",
"eventType": "com.pizzastore.pizza.ordercreated",
"type": "outboundEvent",
"contextProperties": {
"tenancy": "odaserviceinstance00",
"specversion": "1.0",
"id": "7a923f09-bff7-4369-8467-0c510e971aaf",
"source": "hello/app",
"time": 1659357000,
"type": "com.pizzastore.pizza.ordercreated",
"channelname": "System_Global_Test",
"version": "1.0",
"userid": "3910088",
"contenttype": "application/json"
}
}
}
Message 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 | Objet JSON | Oui |
Charge utile des messages fermés de la session de réponse aux compétences
Il s'agit de la charge utile d'un message fermé de session. Il fournit un accusé de réception de la clôture de session au niveau du back-end.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "sessionClosed" |
Oui |
Message texte de réponse de compétence
Représente un message texte. Il applique les propriétés suivantes aux messages de réponse.
Par exemple :
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "text" |
Oui |
text |
Texte du message | chaîne | Oui |
{
"messagePayload": {
"type": "text",
"text": "What do you want to do?",
"actions": [
{
"type": "postback",
"label": "Order Pizza",
"postback": {
"state": "askAction",
"action": "orderPizza"
}
},
{
"type": "postback",
"label": "Cancel A Previous Order",
"postback": {
"state": "askAction",
"action": "cancelOrder"
}
}
]
},
"userId": "guest"
}
Charge utile de message de flux de données de texte de réponse de compétence
La charge utile de réponse de flux de texte r représente une réponse de texte de diffusion en continu fournie en blocs. Il applique les propriétés suivantes à la charge utile des messages de réponse :
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "texStream" |
Oui |
aggregateText |
Texte agrégé transmis dans le flux jusqu'au bloc actuel. | chaîne | Oui |
streamId |
ID du flux. Les blocs du même flux ont le même streamId .
|
chaîne | Oui |
streamState |
Etat de flux du bloc de flux en cours | "start" , "running" , "end" |
Oui |
text |
Texte partiel livré dans le bloc actuel | chaîne | Oui |
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 qui représentent un champ. Il applique les propriétés suivantes aux messages de réponse.
Remarque
Ce type de message est utilisé pour les boîtes de dialogue SQL.
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 |
{
"type":"form",
"headerText":"A-Team",
"forms":[
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Aaron"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Adams"
},
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Demo Builder"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/aaron-adams-4862752"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left"
}
]
},
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Bob"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Brown"
},
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Multi-lingual Expert"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Bobbrown"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left",
"value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
}
]
},
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Charlie"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Chase"
},
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Flow Builder"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Charlie-chase-97a418"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left",
"value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
}
]
}
],
"formColumns":2,
"paginationInfo":{
"currentRangeSize":3,
"rangeStart":0,
"nextRangeSize":2,
"hasPrevious":false,
"hasNext":true,
"totalCount":5,
"rangeSize":3,
"status":"Showing 1-3 of 5 items"
},
"globalActions":[
{
"postback":{
"variables":{},
"action":"system.showMore"
},
"label":"Show More",
"type":"postback"
}
]
}
Message de la table des aptitudes
Représente un message qui renvoie les résultats d'une requête sous forme de table. 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. Il applique les propriétés suivantes aux messages de réponse.
Remarque
Ce type de message est utilisé pour les boîtes de dialogue SQL.
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 |
tableTitle | Titre de la table | chaîne | Non |
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 |
{
"type":"table",
"headerText":"A-Team",
"tableTitle": "Document",
"headings":[
{
"width":20,
"label":"First Name",
"alignment":"left"
},
{
"width":20,
"label":"Last Name",
"alignment":"left"
},
{
"width":35,
"label":"Title",
"alignment":"left"
},
{
"width":25,
"label":"Phone",
"alignment":"right"
}
],
"rows":[
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"Aaron"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Adams"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Demo Builder"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
},
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"Bob"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Brown"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Multi-lingual Expert"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
},
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"Charlie"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Chase"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Flow Builder"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
},
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"David"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Davidson"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Machine Learning Expert"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
},
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"Eric"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Eastman Junior"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Docker Expert"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
}
],
"paginationInfo":{
"currentRangeSize":5,
"rangeStart":0,
"nextRangeSize":-3,
"hasPrevious":false,
"hasNext":false,
"totalCount":5,
"rangeSize":8,
"status":"Showing 1-5 of 5 items"
}
}
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 comporte un formulaire en lecture seule en plus des informations sur les lignes. Il applique les propriétés suivantes aux messages de réponse.
Remarque
Ce type de message est utilisé pour les boîtes de dialogue SQL.
Ce type de message est utilisé pour les boîtes de dialogue SQL.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "tableForm" |
Oui |
tableTitle |
Titre de la table | chaîne | Non |
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 |
{
"type":"tableForm",
"headerText":"A-Team",
"tableTitle": "Document",
"headings":[
{
"width":47,
"label":"First Name",
"alignment":"left"
},
{
"width":47,
"label":"Last Name",
"alignment":"left"
}
],
"rows":[
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Aaron"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Adams"
}
]
},
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Bob"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Brown"
}
]
},
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Charlie"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Chase"
}
]
}
],
"forms":[
{
"title":"View details Aaron Adams",
"fields":[
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Demo Builder"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Aaron-adams-4862572"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left"
}
]
},
{
"title":"View details Bob Brown",
"fields":[
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Multi-lingual Expert"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Bobbrown"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left",
"value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
}
]
},
{
"title":"View details Charlie Chase",
"fields":[
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Flow Builder Fanatic"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Charlie-chase-97a418"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left",
"value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
}
]
}
],
"formColumns":2,
"paginationInfo":{
"currentRangeSize":3,
"rangeStart":0,
"nextRangeSize":2,
"hasPrevious":false,
"hasNext":true,
"totalCount":5,
"rangeSize":3,
"status":"Showing 1-3 of 5 items"
},
"actions":[
{
"postback":{
"variables":{
},
"action":"system.showMore"
},
"label":"Show More",
"type":"postback"
}
],
"footerText":"Tap on a row to see personal details"
}
Message 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.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message. Dans ce cas, il s'agit de "editForm" .
|
"editForm" |
Oui |
title |
Titre représentatif du formulaire de modification | Chaîne | Non |
fields |
Liste de champs pouvant inclure à la fois des champs modifiables et en lecture seule. | Tableau<Champ> | Oui |
formColumns |
Nombre de colonnes dans lesquelles les champs de formulaire doivent être regroupés. La propriété est applicable uniquement lorsque vous définissez également la propriété field .
|
Entier | Non |
formRows |
Liste de lignes pouvant inclure des champs modifiables et en lecture seule. Vous devez définir la propriété fields et formRows est requis. Ces deux options s'excluent mutuellement.
|
Tableau<FormRow> | |
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 inclut 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"
}