Modello di messaggio
L'SDK utilizza un modello di messaggio coerente e digitato per tutto il traffico. La comprensione dei tipi di busta e payload è importante per integrazioni headless, delegati, rendering personalizzato e test. Tutti gli elementi di conversazione sono messaggi con una busta standard:
{
"messagePayload": { /* see types below */ },
"userId": "guest"
}
determina la forma del payload concreto.messagePayload.type
- I messaggi utente vengono avviati dal client; i messaggi di risposta provengono dalla competenza o dall'agente.
Tipi base
Questi sono i tipi di base utilizzati in tutti i messaggi inviati dall'utente allo skill e viceversa. Sono gli elementi costitutivi di tutti i messaggi.
- Azione: le varianti includono
call
,client
,location
,popup
,postback
,share
,submitForm
,url
- Allegato:
audio
,file
, image
,video
- Carta: titolo: descrizione,
imageUrl
,actions
- Posizione:
latitude
,longitude
,optional title/url
- Voce:
text
,longText
,soundUrl
- Campo: in sola lettura
(link
,text
,media
,action
) e modificabile (textInput
,numberInput
,datePicker
,timePicker
,singleSelect
,multiSelect
,toggle)
SelectFieldOption
:label
,value
TableHeading
TableRow
Form
FormRow
FormColumn
PaginationInfo
EventContextProperties
Tipi di payload messaggi utente
- Text
{ "type": "text", "text": "Order Pizza" }
- Collegamento
{ "type": "attachment", "attachment": { "type": "image", "URL": "https://..." } }
- Posizione
{ "type": "location", "location": { "latitude": 45.9, "longitude": 132.6 } }
- Postback
{ "type": "postback", "text": "Small", "postback": { "variables": { "pizza": "Small" }, "system.botId": "....", "system.state": "orderPizza" } }
- Evento in entrata
{ "type": "inboundEvent", "eventType": "com.pizzastore.pizza.orderserved", "eventVersion": "1.0", "eventData": { "size": "Medium", "type": "Cheese" }, "contextProperties": { "id": "6ce23f...", "source": "pizza/service" } }
- Sottomissione modulo
{ "type": "formSubmission", "submittedFields": { "Subject": "Expense", "Amount": 6 }, "partialSubmitField": "Attendees", "postback": { "system.state": "editFormMapVar" } }
Messaggi di risposta
I payload di risposta dello skill/agente includono:
- Text
{ "type": "text", "text": "What do you want to do?" }
- Collegamento
{ "type": "attachment", "attachment": { "type": "file", "url": "https://..." } }
- Cardinalità
{ "type": "card", "layout": "horizontal", "cards": [{ "title": "Hawaiian Pizza", "actions": [/*...*/] }] }
- Comando
{ "type": "command", "command": "someCommand", "properties": { "k": "v" } }
- Errore
{ "type": "error", "errorMessage": "Details...", "error": "..." }
- Esegui comando contesto applicazione
{ "type": "executeApplicationActionCommand", "actionType": "navigate", "command": "executeApplicationAction", "context": "appName", "properties": { "route": "/home" } }
- Feedback (stelle)
{ "type": "text", "text": "How would you like to rate us?", "channelExtensions": { "displayType": "stars" }, "actions": [/* star postbacks */] }
- Posizione
{ "type": "location", "location": { "latitude": 37.53, "longitude": -122.26 } }
- Evento in uscita
{ "type": "outboundEvent", "eventType": "com.pizzastore.pizza.ordercreated", "eventVersion": "1.0", "eventData": { "size": "Medium" } }
- Non elaborato
{ "type": "raw", "payload": { /* channel specific */ } }
- Sessione conclusa
{ "type": "sessionClosed" }
- Flusso di testo
{ "type": "texStream", "streamId": "123", "streamState": "running", "text": "partial chunk", "aggregateText": "accumulated text so far" }
- Edit‑Form supporta
replaceMessage
tramitechannelExtensions
.
Azione
Un'azione rappresenta qualcosa che l'utente può selezionare.
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 |
CallAction
Richiede al cliente di chiamare un numero di telefono specificato per conto dell'utente.
Ad esempio:
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"
}
LocationAction
Richiede al cliente di richiedere la posizione dell'utente.
Ad esempio:
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
Questa azione apre una finestra popup dopo che gli utenti eseguono un'azione di clic su un elemento.
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,
}
}
PostbackAction
Invia un postback predefinito allo skill quando l'utente seleziona un'azione.
Ad esempio:
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"
}
}
ShareAction
Richiede al client di aprire una finestra di dialogo di condivisione per l'utente.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di azione | "share" | Sì |
SubmitFormAction
Questa azione viene utilizzata per sottomettere un form di input allo skill quando soddisfa la convalida lato client. Aggiunge le seguenti proprietà alle proprietà Azione:
JSON di esempio
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
Rappresenta un allegato inviato dall'utente.
Ad esempio:
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"
}
Carta
Rappresenta una singola scheda nel payload dei messaggi.
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
Rappresenta un oggetto posizione.
Ad esempio:
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
}
Vocale
Rappresenta le informazioni vocali in un messaggio
.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
text |
Testo di riepilogo per TTS | stringa | È necessario passare almeno una delle proprietà |
longText |
Testo dettagliato per TTS | stringa | È necessario passare almeno una delle proprietà |
soundUrl |
L'URL di un file audio da riprodurre | stringa | È necessario passare almeno una delle proprietà |
Campo
Rappresenta le informazioni atomiche di una cella di tabella o di un campo modulo all'interno degli oggetti
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 |
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ì |
Campo Sola lettura
Rappresenta un campo di sola lettura. Tutti i campi di sola lettura ereditano le proprietà dei campi e dispongono delle proprietà aggiuntive riportate di seguito.
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
Il campo di testo eredita tutte le proprietà del campo di sola lettura.
.
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
Il campo Collegamento eredita tutte le proprietà del campo di sola lettura e dispone delle proprietà aggiuntive riportate di seguito.
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
Il campo del supporto eredita tutte le proprietà del campo di sola lettura e dispone delle proprietà aggiuntive riportate di seguito.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
displayType |
Il tipo di campo | "supporti" | Sì |
mediaType |
Il tipo di supporto del campo | "video" , "audio" , "image" |
Sì |
Campo Azione
Il campo azione eredita tutte le proprietà del campo di sola lettura e dispone delle proprietà aggiuntive riportate di seguito.
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
Rappresenta un campo modificabile. Tutti i campi modificabili ereditano le proprietà dei campi e dispongono delle proprietà aggiuntive riportate di seguito.
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
Il campo a selezione singola eredita tutte le proprietà del campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
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
Il campo a selezione multipla eredita tutte le proprietà del campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
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
Il campo selettore data eredita le proprietà Campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
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
Il campo selettore ora eredita le proprietà Campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
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
Il campo di attivazione/disattivazione eredita tutte le proprietà del campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
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
Il campo di input di testo eredita le proprietà Campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
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" . Se lo stile di input non è stato impostato, torna a text .
|
stringa | no |
NumberInput
Il campo di input numerico eredita le proprietà Campo modificabile e dispone delle proprietà aggiuntive riportate di seguito.
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 |
selectFieldOption
I campi Selezione singola e Selezione multipla utilizzano una lista di opzioni di campo di selezione con le seguenti proprietà:
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 |
TableHeading
Rappresenta un'intestazione per le tabelle in un oggetto
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 |
TableRow
Rappresenta un array di campi.
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 |
Modulo
Rappresenta un array di campi insieme a un titolo. Utilizzato nei messaggi
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 |
separator |
Indica se visualizzare o meno un separatore per il form. Se questo valore non viene passato, viene visualizzato un separatore per il form. | booleano | 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 |
FormRow
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
id |
L'ID della riga del form | Stringa | No |
columns |
Elenco di colonne visualizzate nella riga del form. | Array <FormColumn> | 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 |
FormColumn
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 |
widthPct |
Superato quando la larghezza è impostata su Fisso. Imposta la proprietà width dell'elemento colonna sul valore percentuale passato. | numero | No |
channelExtensions |
Le proprietà di estensione specifiche del canale associate al messaggio | JSONObject | No |
EventContextProperties
Le proprietà del contesto evento rappresentano le proprietà del contesto
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
Tutti i messaggi che fanno parte di una conversazione hanno la seguente struttura:
Ad esempio:
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
Il semplice messaggio di testo inviato al server.
Ad esempio:
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 allegato utente
Il messaggio di risposta allegato inviato al server.
Ad esempio:
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "attachment" |
Sì |
attachment |
I metadati dell'allegato | Allegato | Sì |
{
"messagePayload": {
"attachment": {
"type": "image",
"url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
},
"type": "attachment"
},
"userId": "guest"
}
Messaggio postback utente
Messaggio di risposta postback inviato al server.
Ad esempio:
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 ubicazione utente
Il messaggio di risposta della posizione inviato al server.
Ad esempio:
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 utente inboundEvent
Rappresenta i messaggi di evento in uscita che possono essere inviati al server. Applica le seguenti proprietà a
Ad esempio:
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
Rappresenta il messaggio di sottomissione del modulo inviato dopo che l'utente ha sottomesso un modulo da un SubmitFormAction. Contiene le proprietà riportate di seguito.
JSON di esempio
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"
}
Messaggi di risposta
Rappresenta il messaggio inviato dallo skill o dall'agente 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 allegato skill
Rappresenta un messaggio di allegato. Applica le seguenti proprietà ai messaggi di risposta.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "attachment" |
Sì |
attachment |
L'allegato inviato | Allegato | Sì |
Nota
I caricamenti di file dal sito host potrebbero non riuscire e restituire un errore della console simile al seguente:
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.
Messaggio scheda competenze
Rappresenta un insieme di scelte visualizzate per l'utente, orizzontalmente come giostre o verticalmente come elenchi. Applica le seguenti proprietà ai messaggi di risposta.
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ì |
Payload messaggio comando risposta skill
Rappresenta un payload del messaggio di comando.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "command" |
Sì |
command |
Il comando da eseguire | stringa | Sì |
properties |
Una mappa di coppie chiave-valore | JSONObject | Sì |
Payload messaggio di errore risposta skill
Rappresenta un payload del messaggio di errore che fornisce feedback ai client in caso di errori nel backend.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "error" |
Sì |
errorMessage |
Viene visualizzato il messaggio di errore | stringa | Sì |
error |
java.lang.Error object |
stringa | No |
Payload messaggio risposta skill ExecuteApplicationContextCommand
Rappresenta un payload del messaggio del comando di esecuzione dell'azione applicazione.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "executeApplicationActionCommand" |
|
actionType |
Il tipo di azione | "custom", "navigate", "query", "updateFields" |
Sì |
command |
Comando Esegui azione applicazione | "executeApplicationAction" |
Sì |
context |
Nome del contesto dell'applicazione | stringa | Sì |
customAction |
Richiamato quando actionType è 'custom' |
stringa | No |
properties |
Coppie chiave-valore che possono essere utilizzate come argomenti durante l'esecuzione dell'azione | JSONObject | No |
Messaggi feedback
Rappresenta un componente di rating del feedback, che acquisisce il feedback di un utente utilizzando un indicatore di rating (in genere un sistema di rating a stelle). Il payload è simile a un messaggio di testo, ma dispone di un campo oggetto
Ad esempio:
channelExtensions
aggiuntivo impostato come { "displayType": "stars" }
. Applica le seguenti proprietà ai messaggi di risposta.
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 ubicazione skill
Rappresenta un messaggio di posizione. Applica le seguenti proprietà ai messaggi di risposta.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "location" |
Sì |
location |
La posizione | Posizione | Sì |
Messaggio evento competenza in uscita
Rappresenta i messaggi di evento in uscita che possono essere inviati dal server. Applica le seguenti proprietà a
Ad esempio:
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 raw competenze
Utilizzato quando un componente crea il payload specifico del canale stesso.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "raw" |
Sì |
payload |
Il payload specifico del canale | Un oggetto JSON | Sì |
Payload messaggio chiuso sessione risposta skill
Rappresenta un payload del messaggio chiuso della sessione. Fornisce la conferma della chiusura della sessione nel backend.
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "sessionClosed" |
Sì |
Messaggio di testo risposta skill
Rappresenta un messaggio. Applica le seguenti proprietà ai messaggi di risposta.
Ad esempio:
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"
}
Payload messaggio flusso di testo risposta skill
Il payload di risposta del flusso di testo r rappresenta una risposta di testo in streaming consegnata in blocchi. Applica le seguenti proprietà al payload del messaggio di risposta:
Nome | descrizione; | Digita | Richiesto? |
---|---|---|---|
type |
Il tipo di messaggio | "texStream" |
Sì |
aggregateText |
Il testo aggregato consegnato nel flusso fino al chunk corrente. | stringa | Sì |
streamId |
ID del flusso. I pezzi dello stesso flusso hanno lo stesso streamId .
|
stringa | Sì |
streamState |
Stato del flusso del chunk corrente | "start" , "running" , "end" |
Sì |
text |
Testo parziale consegnato nel chunk corrente | stringa | Sì |
Messaggio form competenze
Rappresenta un messaggio che restituisce i risultati di una query in un modulo di sola lettura. Il messaggio è costituito da un array di risultati del modulo. Ogni risultato del modulo contiene un array
fields
con coppie chiave-valore che rappresentano un campo. Applica le seguenti proprietà ai messaggi di risposta.
Nota
Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome | Descrizione | Tipo | Obbligatorio? |
---|---|---|---|
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
Rappresenta un messaggio che restituisce i risultati di una query in formato tabella. Il messaggio è costituito da un array di intestazioni e da un array di righe. Le righe contengono un array
fields
che rappresenta le singole celle. Applica le seguenti proprietà ai messaggi di risposta.
Nota
Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome | Descrizione | Tipo | Obbligatorio? |
---|---|---|---|
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
Questo messaggio combina i tipi di messaggio
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à ai messaggi di risposta.
Nota
Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Questo tipo di messaggio viene utilizzato per le finestre di dialogo SQL.
Nome | Descrizione | Tipo | Obbligatorio? |
---|---|---|---|
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 modulo modifica abilità
Rappresenta un messaggio di modulo modificabile (modulo di input). Il messaggio è costituito da un array Campo.
Nome | Descrizione | Tipo | Obbligatorio? |
---|---|---|---|
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"
}