Modelo de mensaje
El SDK utiliza un modelo de mensajes consistente y de tipo para todo el tráfico. Comprender los tipos de sobre y carga útil es importante para las integraciones, los delegados, la representación personalizada y las pruebas sin cabecera. Todos los elementos de conversación son mensajes con un sobre estándar:
{
"messagePayload": { /* see types below */ },
"userId": "guest"
}
determina la forma de carga útil concreta.messagePayload.type
- Los mensajes de usuario los inicia el cliente; los mensajes de respuesta se originan en la aptitud o el agente.
Tipos de base
Estos son los tipos base utilizados en todos los mensajes enviados del usuario a la aptitud y viceversa. Se trata de los elementos fundamentales de todos los mensajes.
- Acción: las variantes incluyen
call
,client
,location
,popup
,postback
,share
,submitForm
,url
- Documento adjunto:
audio
,file
, image
,video
- Tarjeta: título: descripción,
imageUrl
,actions
- Ubicación:
latitude
,longitude
,optional title/url
- Voz:
text
,longText
,soundUrl
- Campo: read-only
(link
,text
,media
,action
) y editable (textInput
,numberInput
,datePicker
,timePicker
,singleSelect
,multiSelect
,toggle)
SelectFieldOption
:label
,value
TableHeading
TableRow
Form
FormRow
FormColumn
PaginationInfo
EventContextProperties
Tipos de carga útil de mensaje de usuario
- Texto
{ "type": "text", "text": "Order Pizza" }
- Asociación
{ "type": "attachment", "attachment": { "type": "image", "URL": "https://..." } }
- Ubicación
{ "type": "location", "location": { "latitude": 45.9, "longitude": 132.6 } }
- Contzn
{ "type": "postback", "text": "Small", "postback": { "variables": { "pizza": "Small" }, "system.botId": "....", "system.state": "orderPizza" } }
- Evento de entrada
{ "type": "inboundEvent", "eventType": "com.pizzastore.pizza.orderserved", "eventVersion": "1.0", "eventData": { "size": "Medium", "type": "Cheese" }, "contextProperties": { "id": "6ce23f...", "source": "pizza/service" } }
- Envío de formulario
{ "type": "formSubmission", "submittedFields": { "Subject": "Expense", "Amount": 6 }, "partialSubmitField": "Attendees", "postback": { "system.state": "editFormMapVar" } }
Mensajes de Respuesta
Las cargas útiles de respuesta de la aptitud/agente incluyen:
- Texto
{ "type": "text", "text": "What do you want to do?" }
- Asociación
{ "type": "attachment", "attachment": { "type": "file", "url": "https://..." } }
- Tarjeta
{ "type": "card", "layout": "horizontal", "cards": [{ "title": "Hawaiian Pizza", "actions": [/*...*/] }] }
- Comando
{ "type": "command", "command": "someCommand", "properties": { "k": "v" } }
- Error
{ "type": "error", "errorMessage": "Details...", "error": "..." }
- Ejecutar Comando de Contexto de Aplicación
{ "type": "executeApplicationActionCommand", "actionType": "navigate", "command": "executeApplicationAction", "context": "appName", "properties": { "route": "/home" } }
- Comentarios (estrellas)
{ "type": "text", "text": "How would you like to rate us?", "channelExtensions": { "displayType": "stars" }, "actions": [/* star postbacks */] }
- Ubicación
{ "type": "location", "location": { "latitude": 37.53, "longitude": -122.26 } }
- Evento de salida
{ "type": "outboundEvent", "eventType": "com.pizzastore.pizza.ordercreated", "eventVersion": "1.0", "eventData": { "size": "Medium" } }
- Sin formato
{ "type": "raw", "payload": { /* channel specific */ } }
- Sesión Cerrada
{ "type": "sessionClosed" }
- Flujo de texto
{ "type": "texStream", "streamId": "123", "streamState": "running", "text": "partial chunk", "aggregateText": "accumulated text so far" }
- Edit‑Form admite
replaceMessage
a través dechannelExtensions
.
Acción
Una acción representa algo que el usuario puede seleccionar.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de acción | Cadena | Sí |
label |
Texto de etiqueta descriptivo de la acción. | Cadena | Se debe incluir al menos uno de estos elementos: label o imageUrl .
|
imageUrl |
Imagen para la acción | Cadena | Se debe incluir al menos una sola propiedad label o imageUrl .
|
style |
El estilo de representación del botón | "primary" , "danger" , "default" |
No |
displayType |
Representación del tipo de elemento de acción (botón, enlace o icono) | "button" , "link" , "icon" |
No |
channelExtensions |
Propiedades de extensión específicas del canal asociadas a la acción | JSONObject | No |
CallAction
Solicita al cliente que llame un número de teléfono especificado en nombre del usuario.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de acción | "llamar" | Sí |
phoneNumber |
Número de teléfono al que llamar | Cadena | Sí |
{
"type": "call",
"label": "Call Support",
"imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
"phoneNumber": "18005555555"
}
LocationAction
Pide al cliente que solicite la ubicación del usuario.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de acción | "location" | Sí |
{
"type": "location",
"label": "Share location",
"imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}
PopupAction
Esta acción abre una ventana emergente después de que los usuarios realicen una acción de clic en un elemento.
PopupAction
utiliza las propiedades Action
junto con sus propias:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de acción | "popup" |
Sí |
popupContent |
El contenido que se muestra en la ventana emergente. | Carga útil del mensaje (consulte el siguiente ejemplo de JSON) | 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
Envía una devolución predefinida a la aptitud cuando el usuario selecciona una acción.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de acción | "devolución" | Sí |
postback |
Devolución que se obtiene cuando el usuario selecciona una acción. | Cadena u objeto JSON | Sí |
{
"type": "postback",
"label": "Large Pizza",
"imageUrl": "https://example.com/images/gallery/locations/11.jpg",
"postback": {
"state": "askSize",
"action": "getCrust"
}
}
ShareAction
Solicita al cliente que abra un cuadro de diálogo de uso compartido para el usuario.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de acción | "share" | Sí |
SubmitFormAction
Esta acción se utiliza para enviar un formulario de entrada a la aptitud cuando cumple la validación del cliente. Agrega las siguientes propiedades a las propiedades de Acción:
JSON de ejemplo
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de acción | "submitForm" |
Sí |
postback |
La carga útil de devolución, que puede incluir una propiedad de acción para disparar la navegación. El valor de esta propiedad se debe establecer en FormSubmissionMessagePayload .
|
JSONObject | No |
{
"type": "submitForm",
"label": "Submit",
"postback": {
"system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
"system.flow": "ExpenseFlow",
"system.state": "editFormMapVar"
}
}
Asociación
Representa un anexo enviado por el usuario.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
title |
Título del anexo | Cadena | No |
type |
Tipo de anexo | cadena (valores válidos: audio, archivo, imagen, vídeo) | Sí |
url |
URL de descarga del anexo | Cadena | Sí |
{
"title": "Oracle Open World Promotion",
"type": "image",
"url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}
Tarjeta
Representa una única tarjeta en la carga útil del mensaje.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
title |
Título de la tarjeta, que se muestra como la primera línea de la tarjeta. | Cadena | Sí |
description |
Descripción de la tarjeta | Cadena | No |
imageUrl |
URL de la imagen que se muestra. | Cadena | No |
URL |
URL del sitio web abierta con un toque. | Cadena | No |
actions |
Matriz de acciones relacionadas con el texto | matriz | No |
channelExtensions |
Las propiedades de extensión específicas del canal asociadas al mensaje | JSONObject | No |
Ubicación
Representa un objeto de ubicación.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
title |
Título de la ubicación | Cadena | No |
url |
URL para mostrar la ubicación en un mapa | Cadena | No |
latitude |
Valor de longitud de las coordenadas GPS | doble | Sí |
longitude |
Valor de latitud de las coordenadas GPS | doble | 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
}
Voz
Representa la información de voz en un mensaje
.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
text |
Texto de resumen de TTS | Cadena | Se debe transferir al menos una de las propiedades |
longText |
Texto detallado para TTS | Cadena | Se debe transferir al menos una de las propiedades |
soundUrl |
URL de un archivo de sonido para reproducir | Cadena | Se debe transferir al menos una de las propiedades |
Campo
Representa la información atómica de una celda de tabla o un campo de formulario dentro de los objetos
Table
, Form
y Table-Form
, proporcionados como par clave-valor.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | Cadena | Sí |
label |
La clave de campo | Cadena | Sí |
marginTop |
Cantidad de espacio vertical entre este campo y el campo anterior dentro de la misma columna | "none" , "medium" ,"large" |
No |
labelFontSize |
Tamaño de fuente utilizado para la etiqueta de campo | "small" , "medium" , "large" |
No |
labelFontWeight |
Posicionamiento de la etiqueta dentro de su celda | "light" , "medium" , "bold" |
No |
channelExtensions |
Las propiedades de extensión específicas del canal asociadas al mensaje | JSONObject | No |
PaginationInfo
Representa la información de paginación de los resultados en los objetos Table
, Form
y Table-Form
.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
totalCount |
Recuento total de resultados | número | Sí |
rangeSize |
El tamaño de rango de los resultados por página | número | Sí |
status |
El mensaje de estado de paginación | Cadena | Sí |
currentRangeSize |
El tamaño del rango de resultados actual | número | Sí |
rangeStart |
Desplazamiento inicial del intervalo de resultados actual | número | Sí |
nextRangeSize |
El tamaño del siguiente rango de resultados | número | Sí |
hasPrevious |
Indica si hay un juego de resultados anterior | booleano | Sí |
hasNext |
Indica si hay un siguiente juego de resultados | booleano | Sí |
Campo Sólo Lectura
Representa un campo de solo lectura. Todos los campos de solo lectura heredan las propiedades de campo y tienen las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
value |
El valor del campo | Cadena | Sí |
width |
Porcentaje sugerido del ancho total disponible que debe ocupar el campo en un diseño de tabla. | número | No |
alignment |
La alineación del valor dentro de una columna de tabla. La alineación por defecto es right .
|
"left" , "center" y "right" |
No |
onHoverPopupContent |
Contenido que se muestra cuando los usuarios pasan el mouse sobre un campo. | Carga Útil de Mensaje | No |
Campo de Texto
El campo de texto hereda todas las propiedades de campo de solo lectura.
.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de elemento. | text (un valor de cadena)
|
Sí |
truncateAt |
Se muestra la posición en la que se trunca el texto largo y donde se muestra una marca de puntos suspensivos (que indica que el valor se ha truncado). | Número | No |
fontSize |
Tamaño de fuente utilizado para el valor de campo | "small" , "medium" , "large" |
No |
fontWeight |
El grosor de fuente utilizado para el valor de campo | "light" , "medium" , "bold" |
No |
Campo de Enlace
El campo de enlace hereda todas las propiedades de campo de solo lectura y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "link" |
Sí |
linkLabel |
Etiqueta utilizada para el hiperenlace | Cadena | No |
imageUrl |
URL de la imagen que abre un enlace al hacer clic. | Cadena | No |
Campo de medios
El campo de medios hereda todas las propiedades de campo de solo lectura y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "medio" | Sí |
mediaType |
Tipo de medios de campo | "video" , "audio" , "image" |
Sí |
Campo de acción
El campo de acción hereda todas las propiedades de campo de solo lectura y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "action" |
Sí |
action |
Acción que se debe realizar cuando el usuario hace clic en el botón de acción. | Acción | Sí |
Campo Editable
Representa un campo editable. Todos los campos editables heredan las propiedades de campo y tienen las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
id |
ID de campo | Cadena | Sí |
placeholder |
Descripción de la entrada que se espera del usuario. Este texto se muestra cuando el usuario aún no ha realizado una selección o introducido un valor. | Cadena | No |
required |
Si esta entrada es necesaria para enviar el formulario | booleano | No |
clientErrorMessage |
Mensaje de error de nivel de campo que se muestra debajo del campo cuando se produce un error de validación del lado del cliente. Si no se proporciona, el SDK se define por defecto en editFieldErrorMessage .
|
Cadena | No |
serverErrorMessage |
Mensaje de error de nivel de campo que se muestra debajo del campo cuando se produce un error de validación del servidor. Este mensaje de error se debe incluir en la carga útil enviada por la aptitud. | Cadena | No |
autoSubmit |
Cuando se establece en true , el formulario se envía automáticamente cuando el usuario ha introducido un valor para el campo.
|
No |
Selección Única
El campo de selección única hereda todas las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "singleSelect" |
Sí |
defaultValue |
Selección por defecto | Tipos de dato primitivos (cadena, número, booleano, etc.) | No |
options |
Matriz de opciones presentadas al usuario. | Una matriz selectFieldOption | Sí |
layoutStyle |
Estilo de diseño utilizado para representar las opciones de selección única. El diseño por defecto es list .
|
"list" , "radioGroup" |
No |
layoutDirection |
Dirección de diseño (horizontal o vertical) de los botones de radio cuando layoutStyle está definido en radioGroup . Por defecto, la dirección de diseño se define como vertical, , pero puede definirla como horizontal .
|
Cadena | No |
Selección Múltiple
El campo de selección múltiple hereda todas las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "multiSelect" |
Sí |
defaultValue |
Selección por defecto | Una matriz<objeto> de tipos de dato primitivos (una cadena, un número, un valor booleano, etc.) | No |
options |
Matriz de opciones presentadas al usuario | Una matriz selectFieldOption
|
Sí |
layoutStyle |
Estilo de diseño utilizado para representar las opciones. | "list" , "checkboxes" |
No |
layoutDirection |
Dirección de diseño (horizontal o vertical) de las casillas de control cuando layoutStyle está definido en checkboxes . Por defecto, la dirección de diseño se define como vertical , pero también se puede definir como horizontal .
|
Cadena | No |
DatePicker
El campo de selector de fecha hereda las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "datePicker" |
Sí |
defaultValue |
El valor inicial de este campo. El formato debe ser YYYY-MM-DD. | Cadena | No |
minDate |
La fecha mínima o más temprana permitida. El formato debe ser YYYY-MM-DD. | Cadena | No |
maxDate |
Fecha máxima o última permitida. El formato debe ser YYYY-MM-DD. | Cadena | No |
TimePicker
El campo de selector de tiempo hereda las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "timePicker" |
Sí |
defaultValue |
El valor inicial de este campo, introducido como HH:mm en formato de 24 horas. | Cadena | No |
minTime |
El tiempo mínimo o más temprano permitido, introducido como HH:mm en formato de 24 horas. Por ejemplo, 00:00. | Cadena | No |
maxTime |
El tiempo máximo o el último permitido, introducido como HH:mm, en formato de 24 horas. Por ejemplo, 13:00. | Cadena | No |
Alternar
El campo de alternancia hereda todas las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "toggle" |
Sí |
defaultValue |
El valor seleccionado inicial. Si desea que el conmutador esté activado inicialmente, defina el valor por defecto en el mismo valor que valueOn .
|
Cadena | No |
valueOff |
El valor cuando el conmutador está desactivado | Cadena | Sí |
valueOn |
El valor cuando el conmutador está activado | Cadena | Sí |
labelOff |
Etiqueta para el valor "off" | Cadena | No |
labelOn |
Etiqueta para el valor "on" | Cadena | No |
TextInput
El campo de entrada de texto hereda las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "textInput" |
Sí |
defaultValue |
El valor inicial de este campo | Cadena | no |
validationRegularExpression |
Expresión regular que indica el formato necesario para esta entrada de texto | Cadena | no |
multiline |
Indicador que determina si se deben representar varias líneas de entrada | booleano | no |
minLength |
Longitud mínima de entrada que el usuario debe proporcionar | entero | no |
maxLength |
Número máximo de caracteres permitidos en el campo de entrada de texto | entero | no |
inputStyle |
Estilo de entrada utilizado por el cliente. Los valores permitidos son: "text" , "tel" , "url" ,"email", y "password" . Vuelve a text si el estilo de entrada no se ha definido.
|
Cadena | no |
NumberInput
El campo de entrada de número hereda las propiedades de Campo editable y tiene las siguientes propiedades adicionales:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
displayType |
Tipo de campo | "numberInput" |
Sí |
defaultValue |
El valor inicial de este campo | Entero | No |
minValue |
Un número mínimo permitido | Entero | No |
maxValue |
El mayor número permitido. | Entero | No |
selectFieldOption
Los campos Selección única y Selección múltiple utilizan una lista de opciones de campo de selección con las siguientes propiedades:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
label |
El texto mostrado | Cadena | Sí |
value |
Valor de la opción | Tipos de dato primitivos (cadena, número, booleano, etc.) | No |
channelExtensions |
Propiedades de extensión específicas del canal asociadas con la opción de campo. | JSONObject | No |
TableHeading
Representa una cabecera para tablas en un objeto
Table
o Table-Form
.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
label |
La etiqueta de cabecera | Cadena | Sí |
alignment |
Posicionamiento de la etiqueta dentro de la celda | "left" , "right" , "center" |
Sí |
width |
Porcentaje sugerido de ancho de tabla que se debe proporcionar al encabezado. | No | |
channelExtensions |
Las propiedades de extensión específicas del canal asociadas al mensaje | JSONObject | No |
TableRow
Representa una matriz de campos.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
fields |
Matriz de campos | <Campo>> | Sí |
selectAction |
Acción que se ejecuta cuando se selecciona la fila. La etiqueta de la acción se muestra como pista cuando los usuarios pasan el mouse sobre la fila. | Acción | No |
channelExtensions |
Las propiedades de extensión específicas del canal asociadas al mensaje | JSONObject | No |
Formulario
Representa una matriz de campos junto con un título. Se utiliza en mensajes
Table-Form
para formas anidadas de una fila de tabla.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
id |
ID del formulario | Cadena | No |
title |
El título del formulario | Cadena | No |
fields |
Matriz de campos | Matriz <Campo> | Sí |
actions |
Matriz de acciones | Matriz <BotsAction> | No |
separator |
Indica si se debe mostrar un separador para el formulario o no. Si no se transfiere este valor, se muestra un separador para el formulario. | booleano | No |
formRows |
Lista de filas que puede incluir campos editables y de solo lectura. Puede definir la lista de campos (con las propiedades fields y, opcionalmente, formColumns ) o una lista de filas que utilizan esta propiedad. fields y formRows son mutuamente exlusivos.
|
Acción | No |
channelExtensions |
Las propiedades de extensión específicas del canal asociadas al mensaje | JSONObject | No |
FormRow
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
id |
ID de la fila del formulario | Cadena | No |
columns |
Lista de columnas mostradas en la fila del formulario. | Matriz <FormColumn> | Sí |
selectAction |
Acciones que se ejecutan cuando se selecciona el formulario. Cuando los usuarios pasan el mouse sobre el formulario, la etiqueta de la acción se muestra como una sugerencia de herramienta (cuando está soportada por el canal). | Acción | No |
separator |
Si se define esta propiedad en true, se inserta una línea de separador sobre el contenido de la fila del formulario. | Boolean | No |
channelExtensions |
Las propiedades de extensión específicas del canal asociadas al mensaje | JSONObject | No |
FormColumn
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
id |
ID de la columna | Cadena | No |
fields |
Lista de campos que se muestran verticalmente en la columna. Estos campos deben ser instancias ReadOnlyField cuando la columna se utiliza en FormRow dentro de Form . Los campos pueden ser campos de solo lectura y editables cuando se utiliza FormRow en EditFormMessagePayload .
|
<Campo> de matriz | Sí |
verticalAlignment |
La alineación vertical de la columna con respecto a las otras columnas de la misma fila de formulario. | Cadena | No |
width |
Determina el ancho de la columna dentro de la fila del formulario. Los valores permitidos son auto (valor por defecto) y stretch . Cuando se define en stretch , la columna toma todo el ancho restante después de presentar cualquier columna de ancho automático. Si hay varias columnas definidas en stretch , dividen de forma uniforme el ancho restante.
|
Cadena | No |
widthPct |
Se transfiere cuando el ancho se establece en fijo. Define la propiedad de ancho del elemento de columna en el valor de porcentaje transferido. | número | No |
channelExtensions |
Las propiedades de extensión específicas del canal asociadas al mensaje | JSONObject | No |
EventContextProperties
Las propiedades de contexto de evento representan las propiedades de contexto
CloudEvent
.
Nombre | Descripción | Tipo | ¿Obligatoria? | Ejemplo |
---|---|---|---|---|
dataschema |
Identifica el esquema al que se adhieren los datos. | URI | No | "/dw/approval_payload.json" |
datacontenttype |
Tipo de contenido de los datos incluidos en el atributo de datos. | Cadena | No | "application/json" |
source |
Recurso que produjo el evento. | URI | No |
"objectstorage" |
time |
Hora a la que se ha expresado el evento en formato de marca de tiempo RFC 3339. | Registro de Hora | No | "2021-01-10T21:19:24Z" |
specversion |
Versión de la especificación CloudEvents. | Cadena | No | "1.0" |
id |
ID de la especificación CloudEvents. | Cadena | No | "123e4567-e89b-12d3-a456-426614174000" |
subject |
Asunto del evento en el contexto del productor del evento y/o tipo de evento. | Cadena | No | "mynewfile.jpg" |
Mensaje de Conversación
Todos los mensajes que forman parte de una conversación tienen la siguiente estructura:
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
messagePayload |
Carga útil del mensaje | Mensaje | Sí |
userId |
ID de usuario | Cadena | Sí |
{
"messagePayload": {
"text": "show menu",
"type": "text"
},
"userId": "guest"
}
Mensaje de usuario
Representa un mensaje enviado del usuario a la aptitud.
Mensaje de texto de usuario
Mensaje de texto simple que se envía al servidor.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "text" |
Sí |
text |
Texto del mensaje | Cadena | Sí |
{
"messagePayload": {
"text": "Order Pizza",
"type": "text"
},
"userId": "guest"
}
Mensaje adjunto de usuario
Mensaje de respuesta del anexo enviado al servidor.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "attachment" |
Sí |
attachment |
Metadatos del anexo | Anexo | Sí |
{
"messagePayload": {
"attachment": {
"type": "image",
"url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
},
"type": "attachment"
},
"userId": "guest"
}
Mensaje de devolución del usuario
Mensaje de respuesta de devolución enviado al servidor.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "postback" |
Sí |
text |
Texto de la devolución | Cadena | No |
postback |
Devolución de la acción seleccionada | Una cadena o JSONObject | Sí |
{
"messagePayload": {
"postback": {
"variables": {
"pizza": "Small"
},
"system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
"system.state": "orderPizza"
},
"text": "Small",
"type": "postback"
},
"userId": "guest"
}
Mensaje de la ubicación del usuario
Mensaje de respuesta de la ubicación enviado al servidor.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "location" |
Sí |
location |
Información de ubicación del usuario | Ubicación | Sí |
{
"messagePayload": {
"location": {
"latitude": 45.9285271,
"longitude": 132.6101925
},
"type": "location"
},
"userId": "guest"
}
Mensaje inboundEvent de usuario
Representa los mensajes de eventos salientes que se pueden enviar al servidor. Aplica las siguientes propiedades a
Por ejemplo:
Message
.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "inboundEvent" |
Sí |
eventType |
Tipo de evento (definido en el catálogo de eventos) | Cadena | Sí |
eventVersion |
Versión de tipo de evento (definida en el catálogo de eventos) | Cadena | Sí |
eventData |
Los datos de negocio | JSONObject | Sí |
contextProperties |
Propiedades de contexto de evento | Propiedades de Contexto de Eventos | 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"
}
Mensaje de envío de formulario de usuario
Representa el mensaje de envío de formulario que se envía después de que el usuario haya enviado un formulario a SubmitFormAction. Tiene las siguientes propiedades:
JSON de ejemplo
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje. | "formSubmission" |
Sí |
submittedFields |
Pares clave-valor de los valores de campo enviados. La clave es el nombre (ID) del campo. | JSONObject | Sí |
postback |
La carga útil de devolución, que puede incluir una propiedad de acción para disparar la navegación. El valor de esta propiedad se debe tomar de SubmitFormAction. | JSONObject | No |
partialSubmitField |
ID del campo que dispara un envío de formulario parcial. Los campos con la propiedad autoSumbit definida en true pueden disparar un envío de formulario parcial.
|
Cadena | 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"
}
Mensajes de Respuesta
Representa el mensaje enviado de la aptitud o el agente al usuario.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | Cadena | Sí |
headerText |
Texto del encabezado que se muestra encima del texto del mensaje. | Cadena | No |
footerText |
Texto de pie de página que se muestra debajo del texto y las acciones del mensaje, pero antes de las acciones globales. | Cadena | No |
actions |
Lista de acciones relacionadas con el mensaje | Array<Action> |
No |
footerForm |
Diseño de formulario que se muestra debajo del texto de pie de página del mensaje y encima de sus acciones globales. | Mensaje de formulario de conocimientos | No |
globalActions |
Lista de acciones globales relacionadas con el texto | Matriz<Acción> | No |
channelExtensions |
Las propiedades de extensión específicas del canal asociadas al mensaje | JSONObject | No |
Mensaje de anexo de aptitud
Representa un mensaje de anexo. Aplica las siguientes propiedades a los mensajes de respuesta.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "attachment" |
Sí |
attachment |
Anexo enviado | Anexo | Sí |
Nota
Las cargas de archivos desde el sitio del host pueden fallar y devolver un error de consola similar al siguiente:
Las cargas de archivos desde el sitio del host pueden fallar y devolver un error de consola similar al siguiente:
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
Esto se debe a que los valores de CORS ( uso compartido de recursos de origen cruzado) del sitio host, que bloquean todas las solicitudes HTTP de origen cruzado, también pueden bloquear las solicitudes de carga de la instancia de cliente en el servidor de anexos de Oracle Digital Assistant. Si se encuentra en este problema, actualice la política de seguridad del sitio host para permitir el dominio de la instancia de Digital Assistant. Debido a que la conversación utiliza conexiones de WebSocket, CORS no afecta a la conversación.
Mensaje de tarjeta de conocimientos
Representa un juego de opciones que se muestran al usuario, en sentido horizontal como carrusel o verticalmente como listas. Aplica las siguientes propiedades a los mensajes de respuesta.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "card" |
Sí |
layout |
Si se va a mostrar los mensajes en sentido horizontal o vertical. | cadena (valor: horizontal , vertical )
|
Sí |
cards |
Matriz de tarjetas que se va a presentar. | matriz | Sí |
Carga útil de mensaje de comando de respuesta de aptitud
Representa una carga útil de mensaje de comando.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "command" |
Sí |
command |
El comando que se debe realizar | Cadena | Sí |
properties |
Una asignación de pares clave-valor | JSONObject | Sí |
Carga útil de mensaje de error de respuesta de aptitud
Representa una carga útil de mensaje de error que proporciona comentarios a los clientes sobre los errores en el backend.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "error" |
Sí |
errorMessage |
El mensaje de error | Cadena | Sí |
error |
java.lang.Error object |
Cadena | No |
Carga útil de mensaje ExecuteApplicationContextCommand de respuesta de aptitud
Representa una carga útil de mensaje de comando de acción de ejecución de aplicación.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "executeApplicationActionCommand" |
|
actionType |
Tipo de acción | "custom", "navigate", "query", "updateFields" |
Sí |
command |
El comando execute application action | "executeApplicationAction" |
Sí |
context |
Nombre del contexto de aplicación | Cadena | Sí |
customAction |
Se necesita cuando actionType es 'custom' |
Cadena | No |
properties |
Pares clave-valor que se pueden utilizar como argumentos al ejecutar la acción | JSONObject | No |
Mensajes de comentarios
Representa un componente de calificación de comentarios, que toma los comentarios de un usuario mediante un indicador de calificación (normalmente un sistema de calificación por estrellas). Su carga útil es similar a un mensaje text, pero tiene un campo de objeto
Por ejemplo:
channelExtensions
adicional que se define como { "displayType": "stars" }
. Aplica las siguientes propiedades a los mensajes de respuesta.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "text" |
Sí |
text |
Texto del mensaje | Cadena | Sí |
channelExtensions |
Objeto que describe las extensiones de la carga útil. | { “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>"
}
Mensaje de ubicación de aptitud
Representa un mensaje de ubicación. Aplica las siguientes propiedades a los mensajes de respuesta.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "location" |
Sí |
location |
Ubicación | Ubicación | Sí |
Mensaje de evento de salida de aptitud
Representa los mensajes de eventos salientes que puede enviar el servidor. Aplica las siguientes propiedades a
Por ejemplo:
Message
.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "outboundEvent" |
Sí |
eventType |
Tipo de evento (definido en el catálogo de eventos) | Cadena | Sí |
eventVersion |
Versión de tipo de evento (definida en el catálogo de eventos) | Cadena | Sí |
eventData |
Los datos de negocio | JSONObject | Sí |
contextProperties |
Propiedades de contexto de evento | Propiedades de Contexto de Eventos | 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"
}
}
}
Mensaje raw de aptitud
Se utiliza cuando un componente crea la carga útil específica del canal.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "raw" |
Sí |
payload |
Carga útil específica del canal | Objeto JSON | Sí |
Carga útil de mensaje cerrado de sesión de respuesta de aptitud
Representa una carga útil de mensaje cerrada de sesión. Proporciona acuse de recibo del cierre de sesión en el backend.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "sessionClosed" |
Sí |
Mensaje de texto de respuesta de aptitud
Representa un mensaje de texto. Aplica las siguientes propiedades a los mensajes de respuesta.
Por ejemplo:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "text" |
Sí |
text |
Texto del mensaje | cadena | 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"
}
Carga útil de mensaje de flujo de texto de respuesta de aptitud
La carga útil de respuesta de flujo de texto r representa una respuesta de flujo de texto que se entrega en fragmentos. Aplica las siguientes propiedades a la carga útil del mensaje de respuesta:
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "texStream" |
Sí |
aggregateText |
Texto agregado que se entrega en el flujo hasta el fragmento actual. | cadena | Sí |
streamId |
ID del conjunto. Los fragmentos del mismo flujo tienen el mismo streamId .
|
cadena | Sí |
streamState |
Estado de flujo del fragmento de flujo actual | "start" , "running" , "end" |
Sí |
text |
Texto parcial entregado en el fragmento actual | cadena | Sí |
Mensaje de formulario de conocimientos
Representa un mensaje que devuelve los resultados de una consulta en un formulario de solo lectura. El mensaje consta de una matriz de resultados de formulario. Cada resultado de formulario contiene una matriz
fields
con pares clave-valor que representan un campo. Aplica las siguientes propiedades a los mensajes de respuesta.
Nota
Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "form" |
Sí |
forms |
Matriz de resultados de formulario. Cada resultado contiene una matriz fields que representa los campos del formulario.
|
Matriz<Fila> | Sí |
formColumns |
Número de columnas en las que se deben agrupar los campos del formulario. | 1 2 | Sí |
paginationInfo |
Información de paginación de los resultados del formulario | 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"
}
]
}
Mensaje de tabla de aptitudes
Representa un mensaje que devuelve los resultados de una consulta en formato de tabla. El mensaje consta de una matriz de cabeceras y una matriz de filas. Las propias filas contienen una matriz
fields
que representa celdas individuales. Aplica las siguientes propiedades a los mensajes de respuesta.
Nota
Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "table" |
Sí |
headings |
Matriz de cabeceras de tabla | Matriz<Cabecera> | Sí |
tableTitle | El título de la tabla | cadena | No |
rows |
Matriz de filas de tablas. Cada fila contiene una matriz fields que representa las celdas de la tabla.
|
Matriz<Fila> | Sí |
paginationInfo |
Información de paginación de los resultados de la tabla | 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"
}
}
Tabla de aptitudes - Mensaje de formulario
Este mensaje combina los tipos de mensaje
Table
y Form
. Representa un mensaje que devuelve los resultados de una consulta en forma de tabla. Cada fila de la tabla tiene un formulario de solo lectura además de la información de fila. Aplica las siguientes propiedades a los mensajes de respuesta.
Nota
Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Este tipo de mensaje se utiliza para cuadros de diálogo SQL.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "tableForm" |
Sí |
tableTitle |
El título de la tabla | cadena | No |
headings |
Matriz de cabeceras de tabla | Matriz<Cabecera> | Sí |
rows |
Matriz de filas de tablas. Cada fila contiene una matriz de campos que representan las celdas de la tabla. | Matriz<Fila> | Sí |
forms |
Matriz de resultados de formulario que se corresponden con cada fila de tabla. Cada formulario contiene una matriz fields que representa los campos del formulario.
|
Matriz<Formulario> | Sí |
formColumns |
Número de columnas en las que se deben agrupar los campos del formulario. | 1 2 | Sí |
paginationInfo |
Matriz de acciones globales relacionadas con el texto | Matriz<Acción> | 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"
}
Mensaje de formulario de edición de aptitud
Representa un mensaje de formulario editable (formulario de entrada). El mensaje consta de una matriz Field.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje. En este caso, es "editForm" .
|
"editForm" |
Sí |
title |
Título de representante del formulario de edición | Cadena | No |
fields |
Lista de campos que pueden incluir campos editables y de solo lectura. | Campo<de matriz> | Sí |
formColumns |
Número de columnas en las que se deben agrupar los campos del formulario. La propiedad solo se aplica cuando también se define la propiedad field .
|
Entero | No |
formRows |
Lista de filas que puede incluir campos editables y de solo lectura. Debe definir la propiedad fields y formRows es necesario. Son mutuamente excluyentes.
|
Matriz<FormRow> | |
errorMessage |
Mensaje de error de nivel de formulario que se muestra cuando el usuario ha enviado datos no válidos pero el error no se puede enlazar a un campo individual. | Cadena | Número |
actions |
Matriz de acciones relacionadas con el formulario de edición. Esta matriz incluye un SubmitFormAction. Se muestra un error en la consola del explorador cuando SubmitFormAction no está incluido en la matriz actions .
|
Matriz<Acción> | Número |
globalActions |
Matriz de acciones globales | Matriz<Acción> | No |
channelExtensions |
Juego de propiedades de extensión específicas del canal
El objeto |
JSONObject | No |
{
"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"
}