Modello di messaggio
Per utilizzare funzioni come la modalità headless e il delegato, è necessario comprendere sia i messaggi utente che quelli relativi alle competenze. Tutto ciò che viene ricevuto o inviato da Oracle Chat Server viene rappresentato come un messaggio, uno inviato dall'utente alla skill o dallo skill all'utente.
Azione
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di azione | stringa | Sì |
label |
Testo dell'etichetta descrittiva per l'azione. | stringa | È necessario includere almeno una delle opzioni label o imageUrl .
|
imageUrl |
L'immagine per l'azione | stringa | È necessario includere almeno una singola proprietà label o imageUrl .
|
style |
Lo stile di rendering del pulsante | "primary" , "danger" , "default" |
No |
displayType |
Il rendering per il tipo di elemento azione (pulsante, collegamento o icona) | "button" , "link" , "icon" |
No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate all'azione | JSONObject | No |
PostbackAction
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di azione | "postback" | Sì |
postback |
Postback restituito quando l'utente seleziona un'azione. | Oggetto stringa o JSON | Sì |
{
"type": "postback",
"label": "Large Pizza",
"imageUrl": "https://example.com/images/gallery/locations/11.jpg",
"postback": {
"state": "askSize",
"action": "getCrust"
}
}
CallAction
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di azione | "call" | Sì |
phoneNumber |
Il numero di telefono da chiamare | stringa | Sì |
{
"type": "call",
"label": "Call Support",
"imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
"phoneNumber": "18005555555"
}
urlAction
Richiede al cliente di aprire un sito web in una nuova scheda o in un browser in-app.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di azione | "call" | Sì |
url |
L'URL del sito Web visualizzato. | stringa | Sì |
ShareAction
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di azione | "share" | Sì |
LocationAction
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di azione | "posizione" | Sì |
{
"type": "location",
"label": "Share location",
"imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}
PopupAction
PopupAction
utilizza le proprietà Action
insieme alle proprie:
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di azione | "popup" |
Sì |
popupContent |
Il contenuto visualizzato nella finestra popup. | Payload del messaggio (fare riferimento all'esempio JSON seguente) | Sì |
{
"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
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di azione | "submitForm" |
Sì |
postback |
Il payload di postback, che potrebbe includere una proprietà di azione per attivare la navigazione. Il valore di questa proprietà deve essere impostato in FormSubmissionMessagePayload .
|
JSONObject | No |
{
"type": "submitForm",
"label": "Submit",
"postback": {
"system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
"system.flow": "ExpenseFlow",
"system.state": "editFormMapVar"
}
}
Collegamento
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
title |
Titolo dell'allegato | stringa | No |
type |
Tipo di allegato | stringa (valori validi: audio, file, immagine, video) | Sì |
url |
URL di download per l'allegato | stringa | Sì |
{
"title": "Oracle Open World Promotion",
"type": "image",
"url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}
Cardinalità
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
title |
Il titolo della carta, visualizzato come prima riga sulla carta. | stringa | Sì |
description |
La descrizione della scheda | stringa | No |
imageUrl |
L'URL dell'immagine visualizzata. | stringa | No |
URL |
L'URL del sito Web aperto con un tocco. | stringa | No |
actions |
Array di azioni correlate al testo | array | No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate al messaggio | JSONObject | No |
Posizione
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
title |
Il titolo della posizione | stringa | No |
url |
URL per la visualizzazione della posizione su una mappa | stringa | No |
latitude |
Valore longitudine della coordinata GPS | doppio | Sì |
longitude |
Valore di latitudine della coordinata GPS | doppio | Sì |
{
"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
Rappresenta le informazioni di paging per i risultati negli oggetti Table
, Form
e Table-Form
.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
totalCount |
Il conteggio totale dei risultati | numerica | Sì |
rangeSize |
La dimensione dell'intervallo dei risultati per pagina | numerica | Sì |
status |
Messaggio di stato paging | Stringa | Sì |
currentRangeSize |
Dimensione della gamma di risultati corrente | numerica | Sì |
rangeStart |
Offset iniziale dell'intervallo corrente di risultati | numerica | Sì |
nextRangeSize |
La dimensione del successivo intervallo di risultati | numerica | Sì |
hasPrevious |
Indica se esiste un set di risultati precedente | boolean | Sì |
hasNext |
Indica se esiste una serie successiva di risultati | boolean | Sì |
FormRow
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
id |
L'ID della riga del form | Stringa | No |
columns |
Elenco di colonne visualizzate nella riga del form. | <Colonna> array | Sì |
selectAction |
Le azioni eseguite quando il modulo è stato selezionato. Quando gli utenti passano il mouse sul form, l'etichetta dell'azione viene visualizzata come suggerimento (se supportata dal canale). | Azione | No |
separator |
Se si imposta questa proprietà su true, viene inserita una riga di separazione sopra il contenuto nella riga del form. | Boolean | No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate al messaggio | JSONObject | No |
Colonna
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
id |
ID della colonna | Stringa | No |
fields |
Elenco di campi visualizzati verticalmente all'interno della colonna. Questi campi devono essere istanze ReadOnlyField quando la colonna viene utilizzata in un FormRow all'interno di un Form . I campi possono essere sia di sola lettura che modificabili quando si utilizza FormRow all'interno di un EditFormMessagePayload .
|
Array<campo> | Sì |
verticalAlignment |
L'allineamento verticale della colonna rispetto alle altre colonne nella stessa riga del modulo. | Stringa | No |
width |
Determina la larghezza della colonna all'interno della riga del form. I valori consentiti sono auto (impostazione predefinita) e stretch . Quando è impostata su stretch , la colonna assume tutta la larghezza rimanente dopo la visualizzazione delle colonne con larghezza automatica. Se sono presenti più colonne impostate su stretch , dividono in modo uniforme la larghezza rimanente.
|
Stringa | No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate al messaggio | JSONObject | No |
Modulo
Table-Form
per i form nidificati di una riga di tabella.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
id |
L'ID del form | Stringa | No |
title |
Il titolo del modulo | Stringa | No |
fields |
Una serie di campi | <Campo> array | Sì |
actions |
Una serie di azioni | Array <BotsAction> | No |
formRows |
Elenco di righe che possono includere campi modificabili e di sola lettura. È possibile definire la lista dei campi (utilizzando fields e facoltativamente le proprietà formColumns ) oppure una lista di righe utilizzando questa proprietà. I valori fields e formRows sono in modalità di esclusione reciproca.
|
Azione | No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate al messaggio | JSONObject | No |
Riga
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
fields |
Una serie di campi | <Campo> | Sì |
selectAction |
Azione eseguita quando viene selezionata la riga. L'etichetta dell'azione viene visualizzata come descrizione comandi quando gli utenti passano il mouse sopra la riga. | Azione | No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate al messaggio | JSONObject | No |
Intestazione
Table
o Table-Form
.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
label |
L'etichetta dell'intestazione | Stringa | Sì |
alignment |
Il posizionamento dell'etichetta all'interno della cella | "left" , "right" , "center" |
Sì |
width |
Percentuale consigliata della larghezza della tabella da fornire all'intestazione. | No | |
channelExtensions |
Le proprietà di estensione specifiche del canale associate al messaggio | JSONObject | No |
Campo
Table
, Form
e Table-Form
, forniti come coppia chiave-valore.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | Stringa | Sì |
label |
La chiave del campo | Stringa | Sì |
marginTop |
Quantità di spazio verticale tra questo campo e il campo precedente all'interno della stessa colonna | "none" , "medium" ,"large" |
No |
labelFontSize |
La dimensione del carattere utilizzata per l'etichetta del campo | "small" , "medium" , "large" |
No |
labelFontWeight |
Il posizionamento dell'etichetta all'interno della sua cella | "light" , "medium" , "bold" |
No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate al messaggio | JSONObject | No |
selectFieldOption
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
label |
Testo visualizzato | stringa | Sì |
value |
Valore per l'opzione | Tipi di dati primitivi (stringa, numero, booleano e così via) | No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate all'opzione di campo. | JSONObject | No |
Campo Sola lettura
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
value |
Il valore del campo | stringa | Sì |
width |
Percentuale consigliata della larghezza totale disponibile che il campo deve occupare in un layout di tabella. | numerica | No |
alignment |
L'allineamento del valore all'interno di una colonna di tabella. L'allineamento predefinito è right .
|
"left" , "center" e "right" |
No |
onHoverPopupContent |
Il contenuto visualizzato quando gli utenti passano il mouse su un campo. | Payload messaggi | No |
Campo Testo
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Tipo di elemento. | text (un valore di stringa)
|
Sì |
truncateAt |
La posizione in cui il testo lungo viene troncato e in cui viene visualizzato un segno di ellissi (che indica che il valore è stato troncato). | Numerico | No |
fontSize |
La dimensione carattere utilizzata per il valore del campo | "small" , "medium" , "large" |
No |
fontWeight |
Spessore carattere utilizzato per il valore del campo | "light" , "medium" , "bold" |
No |
Collega campo
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "link" |
Sì |
linkLabel |
Etichetta utilizzata per il collegamento ipertestuale | stringa | No |
imageUrl |
L'URL dell'immagine che apre un collegamento quando viene fatto clic. | stringa | No |
Campo supporti
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "supporti" | Sì |
mediaType |
Il tipo di supporto del campo | "video" , "audio" , "image" |
Sì |
Campo Azione
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "action" |
Sì |
action |
Azione da eseguire quando l'utente fa clic sul pulsante di azione. | Azione | Sì |
Campo modificabile
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
id |
ID campo | stringa | Sì |
placeholder |
Descrizione dell'input previsto dall'utente. Questo testo viene visualizzato quando l'utente non ha ancora effettuato una selezione o immesso un valore. | stringa | No |
required |
Indica se questo input è necessario per sottomettere il form | boolean | No |
clientErrorMessage |
Messaggio di errore a livello di campo visualizzato sotto il campo quando si verifica un errore di convalida lato client. Se non viene fornito, l'SDK viene impostato automaticamente su editFieldErrorMessage .
|
stringa | No |
serverErrorMessage |
Messaggio di errore a livello di campo visualizzato sotto il campo quando si verifica un errore di convalida lato server. Questo messaggio di errore deve essere incluso nel payload inviato dallo skill. | stringa | No |
autoSubmit |
Se l'opzione è impostata su true , il modulo viene sottomesso automaticamente quando l'utente ha immesso un valore nel campo.
|
No |
Selezione singola
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "singleSelect" |
Sì |
defaultValue |
L'impostazione predefinita | Tipi di dati primitivi (stringa, numero, booleano e così via) | No |
options |
Array di opzioni presentato all'utente. | Un array selectFieldOption | Sì |
layoutStyle |
Stile di layout utilizzato per eseguire il rendering delle opzioni di selezione singola. Il layout predefinito è list .
|
"list" , "radioGroup" |
No |
layoutDirection |
La direzione del layout (orizzontale o verticale) per i pulsanti di opzione quando layoutStyle è impostato su radioGroup . Per impostazione predefinita, la direzione del layout è impostata su vertical, , ma è possibile impostarla su horizontal .
|
Stringa | No |
Selezione multipla
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "multiSelect" |
Sì |
defaultValue |
L'impostazione predefinita | Array<object> di tipi di dati primitivi (stringa, numero, booleano e così via) | No |
options |
Una serie di opzioni presentate all'utente | Un array selectFieldOption
|
Sì |
layoutStyle |
Lo stile di layout utilizzato per eseguire il rendering delle opzioni. | "list" , "checkboxes" |
No |
layoutDirection |
La direzione del layout (orizzontale o verticale) per le caselle di controllo quando layoutStyle è impostato su checkboxes . Per impostazione predefinita, la direzione del layout è impostata su vertical , ma è anche possibile impostarla su horizontal .
|
Stringa | No |
DatePicker
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "datePicker" |
Sì |
defaultValue |
Il valore iniziale per questo campo. Il formato deve essere YYYY-MM-DD. | stringa | No |
minDate |
La data minima o meno recente consentita. Il formato deve essere YYYY-MM-DD. | stringa | No |
maxDate |
Data massima o più recente consentita. Il formato deve essere YYYY-MM-DD. | stringa | No |
TimePicker
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "timePicker" |
Sì |
defaultValue |
Il valore iniziale per questo campo, immesso come HH:mm nel formato a 24 ore. | stringa | No |
minTime |
Ora minima o meno recente consentita immessa come HH:mm nel formato 24 ore. ad esempio 00:00. | stringa | No |
maxTime |
Ora massima o più recente consentita immessa come HH:mm nel formato 24 ore. ad esempio 13:00. | stringa | No |
Cambia
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "toggle" |
Sì |
defaultValue |
Il valore selezionato iniziale. Se si desidera che l'attivazione sia inizialmente attiva, impostare il valore predefinito sullo stesso valore di valueOn .
|
stringa | No |
valueOff |
Il valore di attivazione/disattivazione è disattivato | stringa | Sì |
valueOn |
Il valore di attivazione/disattivazione è attivo | stringa | Sì |
labelOff |
L'etichetta per il valore "off" | stringa | No |
labelOn |
L'etichetta per il valore "on" | stringa | No |
TextInput
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "textInput" |
Sì |
defaultValue |
Il valore iniziale per questo campo | stringa | no |
validationRegularExpression |
Espressione regolare che indica il formato richiesto per questo input di testo | stringa | no |
multiline |
Flag che determina se visualizzare più righe di input | boolean | no |
minLength |
La lunghezza minima dell'input che l'utente deve fornire | Intero | no |
maxLength |
Numero massimo di caratteri consentiti nel campo di input di testo | Intero | no |
inputStyle |
Lo stile di input utilizzato dal client. I valori consentiti sono: "text" , "tel" , "url" ,"email", e "password" .
|
stringa | no |
NumberInput
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "numberInput" |
Sì |
defaultValue |
Il valore iniziale per questo campo | Valore intero | No |
minValue |
Il più piccolo numero consentito | Valore intero | No |
maxValue |
Il numero più grande consentito. | Valore intero | No |
EventContextProperties
CloudEvent
.
Nome | descrizione; | Digita | Richiesto? | Esempio |
---|---|---|---|---|
dataschema |
Identifica lo schema a cui aderiscono i dati. | URI | No | "/dw/approval_payload.json" |
datacontenttype |
Il tipo di contenuto dei dati contenuti nell'attributo dati. | Stringa | No | "application/json" |
source |
La risorsa che ha prodotto l'evento. | URI | No |
"objectstorage" |
time |
L'ora dell'evento espressa nel formato dell'indicatore orario RFC 3339. | Indicatore orario | No | "2021-01-10T21:19:24Z" |
specversion |
La versione della specifica CloudEvents. | Stringa | No | "1.0" |
id |
L'ID della specifica CloudEvents. | Stringa | No | "123e4567-e89b-12d3-a456-426614174000" |
subject |
Oggetto dell'evento nel contesto del produttore e/o del tipo di evento. | Stringa | No | "mynewfile.jpg" |
Messaggio della conversazione
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
messagePayload |
Il payload del messaggio | Messaggio | Sì |
userId |
L'ID utente | stringa | Sì |
{
"messagePayload": {
"text": "show menu",
"type": "text"
},
"userId": "guest"
}
Messaggio utente
Rappresenta un messaggio inviato dall'utente allo skill.
Messaggio di testo utente
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "text" |
Sì |
text |
Il testo del messaggio | stringa | Sì |
{
"messagePayload": {
"text": "Order Pizza",
"type": "text"
},
"userId": "guest"
}
Messaggio postback utente
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "postback" |
Sì |
text |
Il testo del postback | stringa | No |
postback |
Il postback dell'azione selezionata | Una stringa o JSONObject | Sì |
{
"messagePayload": {
"postback": {
"variables": {
"pizza": "Small"
},
"system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
"system.state": "orderPizza"
},
"text": "Small",
"type": "postback"
},
"userId": "guest"
}
Messaggio utente inboundEvent
Message
.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "inboundEvent" |
Sì |
eventType |
Tipo di evento (definito nel catalogo eventi) | Stringa | Sì |
eventVersion |
Versione del tipo di evento (definita nel catalogo eventi) | Stringa | Sì |
eventData |
I dati di business | JSONObject | Sì |
contextProperties |
Le proprietà del contesto dell'evento | Proprietà contesto evento | No |
{
"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"
}
Messaggio di sottomissione modulo utente
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio. | "formSubmission" |
Sì |
submittedFields |
Coppie chiave-valore dei valori di campo sottomessi. La chiave è il nome (ID) del campo. | JSONObject | Sì |
postback |
Il payload di postback, che potrebbe includere una proprietà azione per attivare la navigazione. Il valore di questa proprietà deve essere preso da SubmitFormAction. | JSONObject | No |
partialSubmitField |
ID del campo che attiva l'invio parziale del modulo. I campi con la proprietà autoSumbit impostata su true possono attivare l'invio parziale del modulo.
|
Stringa | No |
{
"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"
}
Messaggio allegato utente
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "attachment" |
Sì |
attachment |
I metadati dell'allegato | Collegamento | Sì |
{
"messagePayload": {
"attachment": {
"type": "image",
"url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
},
"type": "attachment"
},
"userId": "guest"
}
Messaggio ubicazione utente
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "location" |
Sì |
location |
Informazioni posizione utente | Posizione | Sì |
{
"messagePayload": {
"location": {
"latitude": 45.9285271,
"longitude": 132.6101925
},
"type": "location"
},
"userId": "guest"
}
Messaggio abilità
Rappresenta il messaggio inviato dallo skill all'utente.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | stringa | Sì |
headerText |
Testo dell'intestazione visualizzato sopra il testo del messaggio. | stringa | No |
footerText |
Il testo del piè di pagina visualizzato sotto il testo e le azioni del messaggio, ma prima delle azioni globali. | stringa | No |
actions |
Un elenco di azioni correlate al messaggio | Array<Action> |
No |
footerForm |
Layout di modulo che viene visualizzato sotto il testo del piè di pagina del messaggio e sopra le relative azioni globali. | Messaggio form competenze | No |
globalActions |
Elenco di azioni globali correlate al testo | Array<Action> | No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate al messaggio | JSONObject | No |
Messaggio di testo bot
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "text" |
Sì |
text |
Il testo del messaggio | stringa | Sì |
{
"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"
}
Messaggio ubicazione skill
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "location" |
Sì |
location |
La posizione | Posizione | Sì |
Messaggio allegato skill
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "attachment" |
Sì |
attachment |
L'allegato inviato | Collegamento | Sì |
I caricamenti di file dal sito host potrebbero non riuscire e restituire un errore della console simile al seguente:
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
Questo perché le impostazioni CORS (Cross-Origin Resource Sharing) del sito host, che bloccano tutte le richieste HTTP cross-origin, possono anche bloccare le richieste di caricamento dall'istanza client al server di collegamento di Oracle Digital Assistant. Se si verifica questo problema, aggiornare i criteri di sicurezza del sito host per consentire il dominio per l'istanza di Digital Assistant. Poiché la conversazione utilizza connessioni WebSocket, CORS non influisce sulla conversazione.
Passaggio dei nomi file
x-oda-meta-file-name
x-oda-meta-file-type
Messaggi feedback
channelExtensions
aggiuntivo impostato su { "displayType": "stars" }
. Applica le seguenti proprietà al messaggio skill.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "text" |
Sì |
text |
Il testo del messaggio | stringa | Sì |
channelExtensions |
Oggetto che descrive le estensioni del payload. | { “displayType”: “stars” } |
Sì |
{
"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>"
}
Messaggio scheda competenze
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "card" |
Sì |
layout |
Indica se visualizzare i messaggi in senso orizzontale o verticale. | stringa (valori: horizontal , vertical )
|
Sì |
cards |
Array di schede da visualizzare. | array | Sì |
Carta
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
title |
Il titolo della carta, visualizzato come prima riga sulla carta. | stringa | Sì |
description |
La descrizione della scheda | stringa | No |
imageUrl |
L'URL dell'immagine visualizzata. | stringa | No |
url |
L'URL del sito Web aperto con un tocco. | stringa | No |
actions |
Array di azioni correlate al testo | array | No |
{
"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"
}
Messaggio postback skill
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "postback" |
Sì |
text |
Il testo del messaggio | stringa | No |
postback |
Il postback | Una stringa o un JSONObject | Sì |
Messaggio form competenze
fields
con coppie chiave-valore che rappresentano un campo. Applica le seguenti proprietà al messaggio skill.
Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "form" |
Sì |
forms |
Array di risultati del modulo. Ogni risultato contiene un array fields che rappresenta i campi del modulo.
|
Array<Riga> | Sì |
formColumns |
Il numero di colonne in cui devono essere raggruppati i campi del modulo. | 1 2 | Sì |
paginationInfo |
Informazioni di paging per i risultati nel form | PaginationInfo | No |
{
"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"
}
]
}
Messaggio tabella skill
fields
che rappresenta le singole celle. Applica le seguenti proprietà al messaggio skill.
Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "table" |
Sì |
headings |
Una serie di intestazioni di tabella | Array<Intestazione> | Sì |
tableTitle | Il titolo della tabella | stringa | No |
rows |
Array di righe di tabella. Ogni riga contiene un array fields che rappresenta le celle della tabella.
|
Array<Riga> | Sì |
paginationInfo |
Informazioni di paging per i risultati nella tabella | PaginationInfo | No |
{
"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"
}
}
Messaggio modulo tabella skill
Table
e Form
. Rappresenta un messaggio che restituisce i risultati di una query sotto forma di tabella. Ogni riga della tabella dispone di un form di sola lettura oltre alle informazioni sulla riga. Applica le seguenti proprietà al messaggio skill.
Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "tableForm" |
Sì |
tableTitle |
Il titolo della tabella | stringa | No |
headings |
Una serie di intestazioni di tabella | Array<Intestazione> | Sì |
rows |
Array di righe di tabella. Ogni riga contiene un array di campi che rappresentano le celle della tabella. | Array<Riga> | Sì |
forms |
Array di risultati del modulo che corrispondono a ogni riga della tabella. Ogni modulo contiene un array fields che rappresenta i campi del modulo.
|
Array<Form> | Sì |
formColumns |
Il numero di colonne in cui devono essere raggruppati i campi del modulo. | 1 2 | Sì |
paginationInfo |
Array di azioni globali correlate al testo | Array<Action> | No |
{
"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"
}
Messaggio evento competenza in uscita
Message
.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "outboundEvent" |
Sì |
eventType |
Tipo di evento (definito nel catalogo eventi) | Stringa | Sì |
eventVersion |
Versione del tipo di evento (definita nel catalogo eventi) | Stringa | Sì |
eventData |
I dati di business | JSONObject | Sì |
contextProperties |
Le proprietà del contesto dell'evento | Proprietà contesto evento | No |
{
"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"
}
}
}
Messaggio modulo modifica abilità
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio. In questo caso, è "editForm" .
|
"editForm" |
Sì |
title |
Un titolo di rappresentante per il modulo di modifica | Stringa | No |
fields |
Elenco di campi che possono includere campi modificabili e di sola lettura. | Array<Field> | Sì |
formColumns |
Il numero di colonne in cui devono essere raggruppati i campi modulo. La proprietà è applicabile solo quando si imposta anche la proprietà field .
|
Valore intero | No |
formRows |
Elenco di righe che possono includere campi modificabili e di sola lettura. È necessario impostare la proprietà fields e formRows è obbligatorio. I due tipi di differenze sono ad esclusione reciproca.
|
Array<FormRow> | |
errorMessage |
Messaggio di errore a livello di modulo che viene visualizzato quando l'utente ha sottomesso dati non validi ma l'errore non può essere collegato a un singolo campo. | Stringa | N |
actions |
Array di azioni correlate al form di modifica. Questo array include un valore SubmitFormAction. Viene visualizzato un errore nella console del browser quando SubmitFormAction non è incluso nell'array actions .
|
Array<Action> | N |
globalActions |
Una serie di azioni globali | Array<Action> | N |
channelExtensions |
Un set di proprietà di estensione specifiche del canale
L'oggetto |
JSONObject | N |
{
"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"
}