Modèle de message
Pour utiliser des fonctionnalités telles que le mode sans interface utilisateur ou le délégué, vous devez comprendre les messages de l'utilisateur et de la brique. Tout ce qui est reçu ou envoyé par le serveur de discussion Oracle est représenté sous forme de message, qui est envoyé par l'utilisateur à la brique ou par la brique à l'utilisateur.
Action
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | chaîne | Oui |
label |
Texte du libellé descriptif de l'action. | chaîne | Au moins 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 |
PostbackAction
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | "postback" | Oui |
postback |
Postback qui est renvoyé lorsque l'utilisateur sélectionne une action. | Chaîne ou 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 | Requis ? |
---|---|---|---|
type |
Type d'action | "appeler" | Oui |
phoneNumber |
Numéro de téléphone à appeler | chaîne | Oui |
{
"type": "call",
"label": "Call Support",
"imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
"phoneNumber": "18005555555"
}
urlAction
Demande au client d'ouvrir un site Web dans un nouvel onglet ou dans un navigateur intégré à l'application.
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | "appeler" | Oui |
url |
URL du site Web affiché. | chaîne | Oui |
ShareAction
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | "partager" | Oui |
LocationAction
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
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,
}
}
SubmitFormAction
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type d'action | "submitForm" |
Oui |
postback |
Charge utile de postback, qui peut inclure une action proeprty pour déclencher la navigation. La valeur de cette propriété doit être définie dans le fichier FormSubmissionMessagePayload .
|
JSONObject | Non |
{
"type": "submitForm",
"label": "Submit",
"postback": {
"system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
"system.flow": "ExpenseFlow",
"system.state": "editFormMapVar"
}
}
Document joint
Nom | Description | Type | Requis ? |
---|---|---|---|
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
Nom | Description | Type | Requis ? |
---|---|---|---|
title |
Titre de la carte, affiché en tant que première ligne sur la carte. | chaîne | Oui |
description |
Description de la carte | chaîne | Non |
imageUrl |
URL de l'image affichée. | chaîne | Non |
URL |
URL du site Web ouvert en appuyant dessus. | chaîne | Non |
actions |
Tableau d'actions associées au texte | tableau | Non |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
Localisation
Nom | Description | Type | Requis ? |
---|---|---|---|
title |
Titre de la localisation | chaîne | Non |
url |
URL permettant d'afficher la localisation sur une carte | chaîne | Non |
latitude |
Valeur de longitude des coordonnées GPS | double | Oui |
longitude |
Valeur de latitude des coordonnées GPS | double | Oui |
{
"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
.
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 |
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 <Colonne> | 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 |
Colonne
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 |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
Formulaire
Table-Form
pour les formes imbriquées d'une ligne de table.
Nom | Description | Type | Requis ? |
---|---|---|---|
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 |
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 |
Ligne
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 |
En-tête
Table
ou Table-Form
.
Nom | Description | Type | Requis ? |
---|---|---|---|
label |
Libellé d'en-tête | Chaîne | Oui |
alignment |
Positionnement de l'étiquette dans la cellule | "left" , "right" , "center" |
Oui |
width |
Pourcentage suggéré de la largeur du tableau qui doit être fourni à l'en-tête. | Non | |
channelExtensions |
Propriétés d'extension propres au canal associées au message | JSONObject | Non |
Champ
Table
, Form
et Table-Form
, fournis en tant que paire clé-valeur.
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | 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 |
selectFieldOption
Nom | Description | Type | Requis ? |
---|---|---|---|
label |
Texte d'affichage | chaîne | Oui |
value |
Valeur de l'option | Types de données primitifs (chaîne, nombre, booléen, etc.) | Non |
channelExtensions |
Propriétés d'extension propres au canal associées à l'option de champ. | JSONObject | Non |
Champ Lecture seule
Nom | Description | Type | Requis ? |
---|---|---|---|
value |
Valeur du champ | chaîne | Oui |
width |
Pourcentage suggéré de la largeur totale disponible que le champ doit occuper dans une présentation de tableau. | nombre | Non |
alignment |
Alignement de la valeur dans une colonne de tableau. L'alignement par défaut est right .
|
"left" , "center" et "right" |
Non |
onHoverPopupContent |
Contenu qui s'affiche lorsque les utilisateurs survolent un champ. | Charge utile de message | Non |
Champ Texte
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
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "link" |
Oui |
linkLabel |
Libellé utilisé pour le lien hypertexte | chaîne | Non |
imageUrl |
URL de l'image qui ouvre un lien lorsqu'un utilisateur clique dessus. | chaîne | Non |
Champ multimédia
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "support" | Oui |
mediaType |
Type de support du champ | "video" , "audio" , "image" |
Oui |
Champ Action
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "action" |
Oui |
action |
Action à effectuer lorsque l'utilisateur clique sur le bouton d'action. | Action | Oui |
Champ modifiable
Nom | Description | Type | Requis ? |
---|---|---|---|
id |
ID de champ | chaîne | Oui |
placeholder |
Description de l'entrée attendue de l'utilisateur. Ce texte s'affiche lorsque l'utilisateur n'a pas encore effectué de sélection ou saisi de valeur. | chaîne | Non |
required |
Indique si cette entrée est requise pour soumettre le formulaire | boolean | Non |
clientErrorMessage |
Message d'erreur de niveau champ affiché sous le champ lorsqu'une erreur de validation côté client se produit. S'il n'est pas indiqué, le kit SDK prend par défaut la valeur editFieldErrorMessage .
|
chaîne | Non |
serverErrorMessage |
Message d'erreur de niveau champ affiché sous le champ lorsqu'une erreur de validation côté serveur se produit. Ce message d'erreur doit être inclus dans la charge utile envoyée par la brique. | chaîne | Non |
autoSubmit |
Lorsque cette option est définie sur true , le formulaire est soumis automatiquement lorsque l'utilisateur a saisi une valeur pour le champ.
|
Non |
Sélection unique
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "singleSelect" |
Oui |
defaultValue |
Option par défaut | Types de données primitifs (chaîne, nombre, booléen, etc.) | Non |
options |
Tableau d'options présenté à l'utilisateur. | Tableau selectFieldOption | Oui |
layoutStyle |
Style de 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
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
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "datePicker" |
Oui |
defaultValue |
Valeur initiale de ce champ. Le format doit être YYYY-MM-DD. | chaîne | Non |
minDate |
Date minimale, ou la plus ancienne, autorisée. Le format doit être YYYY-MM-DD. | chaîne | Non |
maxDate |
Date maximum, ou dernière, autorisée. Le format doit être YYYY-MM-DD. | chaîne | Non |
TimePicker
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "timePicker" |
Oui |
defaultValue |
Valeur initiale de ce champ, saisie en tant que HH:mm au format 24 heures. | chaîne | Non |
minTime |
Heure minimale, ou la plus ancienne, autorisée, saisie en tant que HH:mm au format 24 heures. Exemple : 00:00. | chaîne | Non |
maxTime |
Heure maximale, ou dernière, autorisée, saisie en tant que HH:mm, au format 24 heures. Par exemple : 13:00. | chaîne | Non |
Activer/désactiver
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "toggle" |
Oui |
defaultValue |
Valeur sélectionnée initiale. Si vous souhaitez que le basculement soit activé initialement, définissez la valeur par défaut sur la même valeur que valueOn .
|
chaîne | Non |
valueOff |
Valeur lorsque la bascule est désactivée | chaîne | Oui |
valueOn |
Valeur lors de l'activation/désactivation | chaîne | Oui |
labelOff |
Libellé de la valeur "off" | chaîne | Non |
labelOn |
Libellé de la valeur "on" | chaîne | Non |
TextInput
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "textInput" |
Oui |
defaultValue |
Valeur initiale de ce champ | chaîne | non |
validationRegularExpression |
Expression régulière indiquant le format requis pour cette entrée de texte | chaîne | non |
multiline |
Indicateur déterminant si plusieurs lignes d'entrée doivent être affichées | boolean | non |
minLength |
Longueur minimale d'entrée que l'utilisateur doit fournir | Nombre entier | non |
maxLength |
Nombre maximum de caractères autorisés dans le champ de saisie de texte | Nombre entier | non |
inputStyle |
Style d'entrée utilisé par le client. Les valeurs autorisées sont : "text" , "tel" , "url" ,"email", et "password" .
|
chaîne | non |
NumberInput
Nom | Description | Type | Requis ? |
---|---|---|---|
displayType |
Type du champ | "numberInput" |
Oui |
defaultValue |
Valeur initiale de ce champ | Entier | Non |
minValue |
Plus petit nombre autorisé | Entier | Non |
maxValue |
Le plus grand nombre autorisé. | Entier | Non |
EventContextProperties
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
Nom | Description | Type | Requis ? |
---|---|---|---|
messagePayload |
Charge utile du message | Message | Oui |
userId |
ID utilisateur | chaîne | Oui |
{
"messagePayload": {
"text": "show menu",
"type": "text"
},
"userId": "guest"
}
Message de l'utilisateur
Représente un message envoyé par l'utilisateur à la brique.
Message texte de l'utilisateur
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "text" |
Oui |
text |
Texte du message | chaîne | Oui |
{
"messagePayload": {
"text": "Order Pizza",
"type": "text"
},
"userId": "guest"
}
Message de postback de l'utilisateur
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "postback" |
Oui |
text |
Texte de postback | chaîne | Non |
postback |
Postback de l'action sélectionnée | Chaîne ou JSONObject | Oui |
{
"messagePayload": {
"postback": {
"variables": {
"pizza": "Small"
},
"system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
"system.state": "orderPizza"
},
"text": "Small",
"type": "postback"
},
"userId": "guest"
}
Message inboundEvent de l'utilisateur
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
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"
}
Message de pièce jointe de l'utilisateur
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "attachment" |
Oui |
attachment |
Métadonnées de pièce jointe | Document joint | Oui |
{
"messagePayload": {
"attachment": {
"type": "image",
"url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
},
"type": "attachment"
},
"userId": "guest"
}
Message de localisation de l'utilisateur
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "location" |
Oui |
location |
Informations sur la localisation de l'utilisateur | Localisation | Oui |
{
"messagePayload": {
"location": {
"latitude": 45.9285271,
"longitude": 132.6101925
},
"type": "location"
},
"userId": "guest"
}
Message de brique
Représente le message envoyé à l'utilisateur à partir de la brique.
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 texte du bot
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"
}
Message de lieu de compétence
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "location" |
Oui |
location |
Localisation | Localisation | Oui |
Message de pièce jointe de compétence
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "attachment" |
Oui |
attachment |
Pièce jointe envoyée | Document joint | Oui |
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.
Transmission de noms de fichier
x-oda-meta-file-name
x-oda-meta-file-type
Messages de retour
channelExtensions
supplémentaire défini sur { "displayType": "stars" }
. Il applique les propriétés suivantes au Message de compétence.
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 fiche d'aptitude
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "card" |
Oui |
layout |
Indique si les messages doivent être affichés horizontalement ou verticalement. | chaîne (valeurs : horizontal , vertical )
|
Oui |
cards |
Tableau des cartes à afficher. | tableau | Oui |
Carte
Nom | Description | Type | Requis ? |
---|---|---|---|
title |
Titre de la carte, affiché en tant que première ligne sur la carte. | chaîne | Oui |
description |
Description de la carte | chaîne | Non |
imageUrl |
URL de l'image affichée. | chaîne | Non |
url |
URL du site Web ouvert en appuyant dessus. | chaîne | Non |
actions |
Tableau d'actions associées au texte | tableau | Non |
{
"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 postback de compétence
Nom | Description | Type | Requis ? |
---|---|---|---|
type |
Type de message | "postback" |
Oui |
text |
Texte du message | chaîne | Non |
postback |
Postback | Chaîne ou JSONObject | Oui |
Message de formulaire de compétence
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.
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
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.
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
Table
et Form
. Il représente un message qui renvoie les résultats d'une requête sous la forme d'une table. Chaque ligne de la table possède un formulaire en lecture seule en plus des informations de ligne. 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.
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 d'événement sortant de compétence
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 de formulaire de modification d'aptitude
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"
}