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.
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 un élément label ou imageUrl doit être inclus.
|
imageUrl |
Image de l'action | chaîne | Au moins une propriété label ou imageUrl unique 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 |
PostbackAction
Nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type d'action | "postback" | Oui |
postback |
Republication retournée 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"
}
}
CallAction
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 |
ShareAction
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type d'action | "share" | Oui |
LocationAction
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type d'action | "location" | Oui |
{
"type": "location",
"label": "Share location",
"imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}
PopupAction
PopupAction
utilise les propriétés Action
avec les siennes :
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type d'action | "popup" |
Oui |
popupContent |
Contenu qui s'affiche dans la fenêtre contextuelle. | Données utiles du message (voir 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,
}
}
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 FormSubmissionMessagePayload .
|
JSONObject | Non |
{
"type": "submitForm",
"label": "Submit",
"postback": {
"system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
"system.flow": "ExpenseFlow",
"system.state": "editFormMapVar"
}
}
Fichier joint
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
title |
Titre du fichier joint | chaîne | Non |
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": "Oracle Open World Promotion",
"type": "image",
"url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}
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 |
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
}
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 |
FormRow
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
id |
ID de la rangée du formulaire | Chaîne | Non |
columns |
Liste des colonnes affichées dans la rangée du formulaire. | Tableau <Colonne> | Oui |
selectAction |
Actions exécutées lorsque le formulaire a été sélectionné. Lorsque les utilisateurs positionnent le pointeur de la souris sur le formulaire, l'étiquette de l'action s'affiche sous forme d'infobulle (lorsqu'elle est prise en charge par le canal). | Action | Non |
separator |
Le réglage de cette propriété à Vrai insère une ligne de séparation au-dessus du contenu dans la ligne du formulaire. | Boolean | Non |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
Colonne
Nom | Description | Type | Obligatoire? |
---|---|---|---|
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 une FormRow dans une Form . Les champs peuvent être en lecture seule et modifiables lorsque FormRow est utilisé dans un 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 rangée du formulaire. Les valeurs autorisées sont auto (valeur par défaut) et stretch . Lorsque cette option est réglée à stretch , la colonne prend toute la largeur restante après l'affichage des colonnes à largeur automatique. Si plusieurs colonnes sont réglées à stretch , elles divisent uniformément la largeur restante.
|
Chaîne | Non |
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? |
---|---|---|---|
id |
ID du formulaire | Chaîne | Non |
title |
Le titre du formulaire | Chaîne | Non |
fields |
Un tableau de champs | Tableau <Champ> | Oui |
actions |
Tableau d'actions | Tableau <BotsAction> | Non |
formRows |
Liste des rangées pouvant inclure à la fois des champs modifiables et des champs en lecture seule. Vous pouvez définir la liste de champs (à l'aide de fields et éventuellement des propriétés formColumns ) ou une liste de rangées à 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 |
rangée
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
fields |
Un tableau de champs | <Champ> | Oui |
selectAction |
Action exécutée lorsque l'enregistrement est sélectionné. L'étiquette de l'action s'affiche en tant qu'infobulle lorsque les utilisateurs pointent au-dessus de la rangée. | Action | 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.
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
displayType |
Type de champ | Chaîne | Oui |
label |
La clé du champ | Chaîne | Oui |
marginTop |
Quantité d'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 l'étiquette de 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 |
selectFieldOption
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
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 |
onHoverPopupContent |
Contenu qui s'affiche lorsque les utilisateurs positionnent le pointeur de la souris sur un champ. | Données utiles du message | Non |
Champ de texte
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
displayType |
Type d'élément. | text (valeur de chaîne)
|
Oui |
truncateAt |
Position à laquelle le texte long est tronqué et où une marque de points de suspension (qui indique que la valeur a été tronquée) s'affiche. | Numéro | 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
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 automatiquement 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 tableau selectFieldOption | Oui |
layoutStyle |
Style de disposition utilisé pour afficher les options de sélection unique. La disposition par défaut est list .
|
"list" , "radioGroup" |
Non |
layoutDirection |
Direction de disposition (horizontale ou verticale) des boutons radio lorsque layoutStyle est réglé à radioGroup . Par défaut, la direction de disposition est réglée à vertical, , mais vous pouvez la régler à horizontal .
|
Chaîne | 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 | Un tableau selectFieldOption
|
Oui |
layoutStyle |
Style de disposition utilisé pour afficher les options. | "list" , "checkboxes" |
Non |
layoutDirection |
Direction de disposition (horizontale ou verticale) des cases à cocher lorsque layoutStyle est réglé à checkboxes . Par défaut, la direction de disposition est réglée à vertical , mais vous pouvez également la définir à horizontal .
|
Chaîne | 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 |
EventContextProperties
CloudEvent
.
Le nom | Description | Type | Obligatoire? | 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 incluses dans l'attribut de données. | Chaîne | Non | "application/json" |
source |
Ressource qui a produit l'événement. | URI | Non |
"objectstorage" |
time |
Heure de l'événement dans le format d'heure 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 d'événements ou du type d'événement. | Chaîne | Non | "mynewfile.jpg" |
Message de conversation
Le 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
Le 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
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type de message | "postback" |
Oui |
text |
Texte de republication | chaîne | Non |
postback |
Republication de l'action sélectionnée | Une chaîne ou JSONObject | Oui |
{
"messagePayload": {
"postback": {
"variables": {
"pizza": "Small"
},
"system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
"system.state": "orderPizza"
},
"text": "Small",
"type": "postback"
},
"userId": "guest"
}
Message de l'utilisateur inboundEvent
Message
.
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type de message | "inboundEvent" |
Oui |
eventType |
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'affaires | JSONObject | Oui |
contextProperties |
Propriétés du 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 d'utilisateur
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é autoSumbit 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 joint d'utilisateur
Le 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 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 |
headerText |
Texte d'en-tête affiché au-dessus du texte du message. | chaîne | Non |
footerText |
Texte de pied de page affiché sous le texte et les actions du message, mais avant les actions globales. | chaîne | Non |
actions |
Liste des actions liées au message | Array<Action> |
Non |
footerForm |
Disposition de formulaire qui s'affiche sous le texte de pied de page du message et au-dessus de ses actions globales. | Message de formulaire d'aptitude | 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 texte de robot
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
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"
}
Message d'emplacement d'aptitude
Nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type de message | "location" |
Oui |
location |
Emplacement | Emplacement | Oui |
Message de fichier joint à l'aptitude
Nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type de message | "attachment" |
Oui |
attachment |
Fichier joint envoyé | Fichier joint | Oui |
Les téléchargements de fichiers depuis le site hôte risquent d'échouer et d'émettre une erreur 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 d'origine croisée, peuvent également empêcher le chargement des demandes de l'instance client au serveur de fichiers joints Oracle Digital Assistant. Si vous rencontrez ce problème, modifiez la politique de sécurité du site hôte pour autoriser le domaine de l'instance Digital Assistant. Étant donné que la conversation utilise des connexions WebSocket, CORS n'a pas d'incidence dessus.
Transmission de noms de fichier
x-oda-meta-file-name
x-oda-meta-file-type
Messages de rétroaction
channelExtensions
supplémentaire réglé à { "displayType": "stars" }
. Il applique les propriétés suivantes au message de compétence.
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type de message | "text" |
Oui |
text |
Texte du message | chaîne | Oui |
channelExtensions |
Objet décrivant les extensions des données utiles. | { “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 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 |
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 |
{
"messagePayload": {
"type": "card",
"layout": "horiztonal",
"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 republication d'aptitude
Nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type de message | "postback" |
Oui |
text |
Texte du message | chaîne | Non |
postback |
Republication | Une chaîne ou une valeur JSONObject | Oui |
Message de formulaire d'aptitude
fields
avec des paires clé-valeur représentant un champ. Il applique les propriétés suivantes au message de compétence.
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 |
{
"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 d'aptitudes
fields
qui représente des cellules individuelles. Il applique les propriétés suivantes au message de compétence.
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 |
tableTitle | Le titre du tableau | chaîne | Non |
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 |
{
"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"
}
}
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. Il applique les propriétés suivantes au message de compétence.
Ce type de message est utilisé pour les boîtes de dialogue SQL.
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type de message | "tableForm" |
Oui |
tableTitle |
Le titre du tableau | chaîne | Non |
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 |
{
"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 d'événement sortant d'aptitude
Message
.
Le nom | Description | Type | Obligatoire? |
---|---|---|---|
type |
Type de message | "outboundEvent" |
Oui |
eventType |
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'affaires | JSONObject | Oui |
contextProperties |
Propriétés du 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 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 |
title |
Titre représentatif du formulaire de modification | Chaîne | Non |
fields |
Liste de champs pouvant inclure à la fois des champs modifiables et des champs 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 des rangées pouvant inclure à la fois des champs modifiables et des champs en lecture seule. Vous devez définir la propriété fields et formRows est requis. Ils sont mutuellement exclusifs.
|
Tableau <FormRow> | |
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 | No |
actions |
Tableau d'actions liées au formulaire de modification. Ce tableau comprend un fichier SubmitFormAction. Une erreur s'affiche dans la console du navigateur lorsque SubmitFormAction n'est pas inclus dans le tableau actions .
|
Tableau <Action> | No |
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"
}