Modelo de mensaje
Para utilizar funciones como el modo sin cabecera y el delegado, debe comprender tanto los mensajes de usuario como los de aptitud. Todo lo que se recibe o envía desde el servidor de chats de Oracle se representa como un mensaje, uno que se envía del usuario a la aptitud o de la aptitud al usuario.
Acción
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 |
PostbackAction
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"
}
}
CallAction
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"
}
urlAction
Solicita al cliente que abra un sitio web en un nuevo separador o en un explorador de la aplicación.
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de acción | "llamar" | Sí |
url |
URL del sitio web que se muestra. | Cadena | Sí |
ShareAction
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de acción | "share" | Sí |
LocationAction
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
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,
}
}
SubmitFormAction
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
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
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
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
}
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í |
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 <Columna> | 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 |
Columna
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 |
channelExtensions |
Las propiedades de extensión específicas del canal asociadas al mensaje | JSONObject | No |
Formulario
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 |
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 |
Fila
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 |
Encabezado
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 |
Campo
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 |
selectFieldOption
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 |
Campo Sólo Lectura
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
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
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
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
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
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
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
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
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
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
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
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" .
|
Cadena | no |
NumberInput
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 |
EventContextProperties
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
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
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 de devolución del usuario
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 inboundEvent de usuario
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
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"
}
Mensaje adjunto de usuario
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "attachment" |
Sí |
attachment |
Metadatos del anexo | Asociación | Sí |
{
"messagePayload": {
"attachment": {
"type": "image",
"url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
},
"type": "attachment"
},
"userId": "guest"
}
Mensaje de la ubicación del usuario
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 de aptitud
Representa el mensaje enviado de la aptitud 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 texto de bot
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"
}
Mensaje de ubicación de aptitud
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "location" |
Sí |
location |
Ubicación | Ubicación | Sí |
Mensaje de anexo de aptitud
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "attachment" |
Sí |
attachment |
Anexo enviado | Asociación | Sí |
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.
Transferencia de nombres de archivo
x-oda-meta-file-name
x-oda-meta-file-type
Mensajes de comentarios
channelExtensions
adicional que se define como { "displayType": "stars" }
. Aplica las siguientes propiedades al Mensaje de aptitud.
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 tarjeta de conocimientos
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í |
Tarjeta
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 |
{
"messagePayload": {
"type": "card",
"layout": "horiztonal",
"cards": [
{
"title": "Hawaiian Pizza",
"description": "Ham and pineapple on thin crust",
"actions": [
{
"type": "postback",
"label": "Order Small",
"postback": {
"state": "GetOrder",
"variables": {
"pizzaType": "hawaiian",
"pizzaCrust": "thin",
"pizzaSize": "small"
}
}
},
{
"type": "postback",
"label": "Order Large",
"postback": {
"state": "GetOrder",
"variables": {
"pizzaType": "hawaiian",
"pizzaCrust": "thin",
"pizzaSize": "large"
}
}
}
]
},
{
"title": "Cheese Pizza",
"description": "Cheese pizza (i.e. pizza with NO toppings) on thick crust",
"actions": [
{
"type": "postback",
"label": "Order Small",
"postback": {
"state": "GetOrder",
"variables": {
"pizzaType": "cheese",
"pizzaCrust": "thick",
"pizzaSize": "small"
}
}
},
{
"type": "postback",
"label": "Order Large",
"postback": {
"state": "GetOrder",
"variables": {
"pizzaType": "cheese",
"pizzaCrust": "thick",
"pizzaSize": "large"
}
}
}
]
}
],
"globalActions": [
{
"type": "call",
"label": "Call for Help",
"phoneNumber": "123456789"
}
]
},
"userId": "guest"
}
Mensaje de devolución de aptitud
Nombre | Descripción | Tipo | ¿Obligatoria? |
---|---|---|---|
type |
Tipo de mensaje | "postback" |
Sí |
text |
Texto del mensaje | Cadena | No |
postback |
Devolución | Una cadena o JSONObject | Sí |
Mensaje de formulario de conocimientos
fields
con pares clave-valor que representan un campo. Aplica las siguientes propiedades al Mensaje de aptitud.
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
fields
que representa celdas individuales. Aplica las siguientes propiedades al Mensaje de aptitud.
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
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 al Mensaje de aptitud.
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 evento de salida de aptitud
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 de formulario de edición de aptitud
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"
}