BotAPI

BotAPI

Bot API se basa en REST. Puede llamar a nuestras APIs a través de una petición HTTP estándar con su clave api colocada en el parámetro de consulta. A su vez, WOZTELL devolverá una respuesta codificada en JSON, con los datos correspondientes que pueden determinar si las operaciones relacionadas se han completado.

Antes de empezar, puede descargar la colección BotAPI Postman y el entorno en formato JSON


Si su navegador no puede descargar los archivos JSON después de hacer clic en la URL...
Haga clic con el botón derecho del ratón y seleccione "Inspeccionar" para abrir las herramientas de desarrollo. Selecciona "Fuente" y haz clic con el botón derecho para descargar el archivo fuente mediante "Guardar como...".



Autenticación

Código de acceso

El token de acceso debe colocarse como parámetro de consulta como accessToken en la solicitud. El token de acceso puede generarse siguiendo esta guía.

Cada API puede tener un ámbito de aplicación diferente, pero basta con elegir uno para llamar a la API.

Tipo de régimen de seguridadNombre del parámetro de consulta
Clave APIcódigo de acceso
CONSEJO

Alternativamente, el token de acceso también se puede poner en la cabecera de autorización como token portador.

Envía respuestas

Para enviar respuestas en nombre de su chatbot a un miembro específico en WOZTELL.

Generar plantilla en JSON

WOZTELL le permite crear y gestionar plantillas de mensajes en la plataforma. Al enviar respuestas con Bot API, existe una forma cómoda de obtener el contenido de una plantilla en JSON.

  1. En "Recursos", seleccione "Respuestas".
  1. Seleccione "+ Nueva respuesta".
  1. Despliega la pestaña. Seleccione "Añadir plataforma" y seleccione "WhatsApp Cloud". Esto le permitirá aplicar tipos de mensajes específicos de WhatsApp Cloud.
  1. Seleccione "Plantilla de mensaje" entre los tipos de mensaje.
  1. Seleccione la "Integración" correspondiente y haga clic en "Actualizar plantilla de mensaje".
  1. Elija la "Plantilla de mensaje" que desee utilizar. A continuación, seleccione la "Política lingüística" y el "Idioma" correspondientes.
  1. Rellene los componentes necesarios de la plantilla, por ejemplo, imágenes y parámetros. Haga clic en "Confirmar" para salir de esta ventana.
  1. En la respuesta, cambie a "Avanzado" para obtener el contenido de la plantilla en JSON.

Solicitar

Autorizaciones: accessToken(bot:sendResponsesbot:admin)

Parámetros de consulta:

Esquema del cuerpo de la solicitud: application/json

CampoRequeridoTipoDescripción
ID de canal SiCadena de textoID de canal en WOZTELL
ID de miembroNoCadena de textoCualquier memberId, recipientId
ID de miembro en Woztell
Destinario IDNoCadena de textoCualquier memberId, recipientIdID del destinatario en la integración. Por ejemplo, PSID en Facebook, número de teléfono en WhatsApp, etc. (No garantizado, consulte al creador de la integración si es necesario).
RespuestaYesMatrizLos datos que desea enviar como respuesta. Puede construir el objeto de respuesta haciendo referencia a la documentación de la integración o copiándolo del Bot Builder.


Solicitud de muestras

  • Tipo de contenido: application/json
  • WhatsApp
  • Facebook
{
"channelId": "5fe729b3094223123123",
"recipientId": "85291239123",
"response": [
{
"type": "TEMPLATE",
"elementName": "testing",
"languageCode": "zh_CN",
"components": [
{
"type": "header",
"parameters": [
{
"type": "video",
"video": {
"id": "caf8bc1a-fbc0-4dc3-9d08-434sdf6df"
}
}
]
},
{
"type": "button",
"sub_type": "quick_reply",
"index": "0",
"parameters": [
{
"type": "payload",
"payload": "123"
}
]
}
]
}
]
}
Copy

Respuesta

Estado CódigoDescripción
200Esta petición devolverá un código HTTPS 200 si el bot ha iniciado la ejecución. En el cuerpo de la respuesta, una cadena JSON que contiene una bandera "ok" con valor 1 que indica el éxito de la ejecución.

Cuerpo de la respuesta Esquema: application/json

ObjetoTipoDescripción
okIntValor: 1, estado que indica si esta solicitud se ha realizado correctamente o no
MiembroCadena de textoWOZTELL ID de miembro
Envía resultadosObjetoEnviar objeto de resultado
enviarResultado.ok IntEl servidor de integración ha recibido correctamente la respuesta
enviarResultado.miembroCadena de textoWOZTELL ID de miembro
enviarResultado.resultadoObjetoMatriz de resultados de envío desde el servidor de integración, debe tener los campos ok, messageEvent, error (Opcional) para mostrar el resultado de cada respuesta.


Estado de códigoDescripción
500Esta petición devolverá el código HTTPS 500 si encuentra un error antes de la ejecución del bot.

Esquema del cuerpo de la respuesta: application/json

ObjetoTipoDescripción
okIntSiempre 0, indica error Bot encontrado antes de enviar respuesta al servidor de integración
Código_de_errorCadena de textoCódigo de error in WOZTELL
ErrorCadena de textoError message


Muestra de respuesta

  1. Código de estados: 200
  2. Tipo de contenido: application/json

  • Éxito Fracaso
{
"ok": 1,
"member": "5ece50f3bf385b25c4e08db5",
"sendResult": {
"ok": 1,
"member": "5ece50f3bf385b25c4e08db5",
"result": [
{
"result": {
"messages": [
{
"id": "gBGGhSZphigfAglySd38a9T4jAE"
}
],
"meta": {
"api_status": "stable",
"version": "2.31.5"
}
},
"messageEvent": {
"from": 85291239123,
"to": 85232193219,
"data": {
"text": "Hello World"
},
"type": "TEXT",
"timestamp": 1611900841740,
"messageId": "gBGGhSZphigfAglySd38a9T4jAE"
},
"chatId": "5ece50f3bfa915g5c4e08db5"
},
{
"result": {
"messages": [
{
"id": "gBGGhSZafi5th8lySd38a9T4jAE"
}
],
"meta": {
"api_status": "stable",
"version": "2.31.5"
}
},
"messageEvent": {
"from": 85291239123,
"to": 85232193219,
"data": {
"url": "https://miro.medium.com/max/1200/1*mk1-6aYaf_Bes1E3Imhc0A.jpeg"
},
"type": "IMAGE",
"timestamp": 1611900841740,
"messageId": "gBGGhSZafi5th8lySd38a9T4jAE"
},
"chatId": "5ece50f3bfa915g5c4e08db6"
}
]
}
}
Copy
  • Código de estados: 500
  • Tipo de contenido: application/json
{
"ok": 0,
"err": "User is not authorized."
}
Copy


Redirigir miembro a nodo

Redirigir un miembro a un nodo específico del árbol y ejecutar todos o parte de los componentes del nodo. Esto es útil para realizar operaciones complejas en un miembro y mantener toda la lógica del bot en el árbol en lugar de codificarla en una api.

Si no se proporciona memberId, el sistema buscará un miembro con el recipientId proporcionado.

Meta objeto

Para utilizar el objeto meta pasado por la API en la respuesta de transformación o en las acciones del nodo objetivo, utilice el siguiente código para acceder a su meta.

this.agendaMeta
Copy

Ejemplo:

To access in transform response or actions
return new Promise((resolve, reject) => {
// ...
const name = this.agendaMeta.name // "Sanuker"
const orderId = this.agendaMeta.orderId // "5ecf6be76fcfda6b139d802c"
// ...
})
Copy

Solicitar

Correo electrónico https://bot.api.woztell.com/redirectMemberToNode

Autorizaciones: accessToken(bot:redirectMemberToNodebot:adminapi:admin)

Parámetro de consulta:

Parámetro de consultaRequeridoTipoDescripción
Código de accesoSiClave ApiEl token de acceso debe colocarse como parámetro de consulta como accessToken en la solicitud. El token de acceso puede generarse siguiendo esta guía. Cada API puede tener un ámbito diferente, pero basta con seleccionar uno de ellos para llamar a la API.

Request Body Schema: application/json

CampoRequeridoTipoDescripción
ID de canal SiCadena de textoID de canal en WOZTELL
ID de miembroNoCadena de textoCualquier memberId, recipientIdID de miembro en WOZTELL
RecipientIdNoCadena de textoCualquier memberId, recipientIdID del destinatario en la integración. Por ejemplo, PSID en Facebook, número de teléfono en WhatsApp, etc. (No garantizado, consulte al creador de la integración si es necesario).
RedirigirSiObjetoEl nodo de destino al que desea redirigir.
Redigir. ÁrbolSiCadena de textoÁrbol de destino al que desea redirigir.
Redirigir.nodoCompositeIdSiCadena de textoNodo de destino al que desea redirigir.
Redigir.runPreActionNoBooleanRedirigir la ejecución de la acción previa; puede establecerse como verdadero o falso
Redirigir.sendResponseNoBooleanRedirigir la respuesta de envío; puede establecerse como verdadero o falso
Redirigir.runPostActionNoBooleanRedirigir ejecutar post-acción; se puede establecer como verdadero o falso
MetaNoObjetoOpcional
Metaobjeto proporcionado al nodo.
Se puede acceder al metaobjeto en el nodo de destino a través de this.agendaMeta.


Solicitud de muestra 

Tipo de contenido: application/json

{
"channelId": "5ece50e72efaabd58ef55027",
"memberId": "5ece50f3bf385b25c4e08db5",
"recipientId": null,
"redirect": {
"tree": "5ecf6cfba3b6643c33a64079",
"nodeCompositeId": "j4Bivxm0GWhnNV1m",
"runPreAction": true,
"sendResponse": true,
"runPostAction": true
},
"meta": {
"name": "Sanuker",
"orderId": "5ecf6be76fcfda6b139d802c"
}
}
Copy

Respuesta

Código de estadosDescripción
200Esta petición devolverá el código HTTPS 200 si el bot ha iniciado la ejecución.

Esquema del cuerpo de la respuesta: application/json

ObjetoTipoDescripción
okIntSiempre 1, indica que Bot ha ejecutado el comando de envío de respuesta
MiembroCadena de textoWOZTELL Miembro de ID
Enviar resultadoObjetoEnviar resultado
Enviar resultado.okIntEl servidor de integración ha recibido correctamente la respuesta
Enviar resultado.miembroCadena de textoWOZTELL Miembro de ID
Enviar resultado.resultado[Objeto]Matriz de resultados de envío desde el servidor de integración, debe tener los campos ok, messageEvent, error (Opcional) para mostrar el resultado de cada respuesta.


Código de estadosDescripción
500Esta petición devolverá el código HTTPS 500 si encuentra un error antes de la ejecución del bot.
ObjetoTipoDescripción
okIntSiempre 0, indica error Bot encontrado antes de enviar respuesta al servidor de integración
Error_ de_ códigoIntCódigo de error en WOZTELL
ErrorCadena de textoError de mensaje

Solicitud de muestra

  • Estado de código: 200
  • Contenidoapplication/json
{
"ok": 1,
"member": "5ece50f3bf385b25c4e08db5",
"sendResult": {
"ok": 1,
"member": "5ece50f3bf385b25c4e08db5",
"result": [
{
"ok": 1,
"messageEvent": {
"from": 85291239123,
"to": 85232193219,
"data": {
"text": "Hello World"
},
"type": "TEXT",
"timestamp": 1611900841740,
"messageId": "gBGGhSZphigfAglySd38a9T4jAE"
}
},
{
"ok": 1,
"messageEvent": {
"from": 85291239123,
"to": 85232193219,
"data": {
"url": "https://miro.medium.com/max/1200/1*mk1-6aYaf_Bes1E3Imhc0A.jpeg"
},
"type": "IMAGE",
"timestamp": 1611900841740,
"messageId": "gBGGhSZafi5th8lySd38a9T4jAE"
}
}
]
}
}
Copy
  • Estado de código: 500
  • Contenido application/json
{
"ok": 0,
"err_code": 108,
"err": "channelId is required."
}
Copy


Error de Códigos

WOZTELL devolverá los códigos de error correspondientes a la solicitud cuando se produzca un error.

CódigoDescripción
100El número de teléfono proporcionado no es válido. El número no existe o no tiene una cuenta de WhatsApp vinculada.
104Facebook PSID no es válido o el token de acceso reside en el canal designado no es válido
108Faltan parámetros
112No se encuentra el canal con el channelId correspondiente
113Error del servidor de WhatsApp