Preguntar a la IA
Español ES
Ir a Watbot

Solicitud HTTP

El bloque envía una solicitud a un servidor externo y procesa la respuesta: la muestra en el chat, la guarda en variables o la pasa a tu código.

Panel de configuración del bloque «Solicitud HTTP»Panel de configuración del bloque «Solicitud HTTP»

Configuración

  • «URL»: la dirección de la solicitud, hasta 2048 caracteres. Debe empezar por http:// o https://.

  • «Método»: GET, POST, PUT, DELETE o PATCH.

  • «Encabezados»: pares «nombre = valor», hasta diez. El botón «Añadir encabezado» añade una fila. Si no indicas el encabezado Accept, el bloque envía Accept: application/json.

  • «Body»: el cuerpo de la solicitud. El campo aparece con todos los métodos excepto GET. El formato se elige en una lista:

    • JSON: todo el cuerpo se escribe en el editor;
    • x-www-form-urlencoded: pares «clave = valor»; las filas se añaden con el botón «Añadir cadena»;
    • multipart/form-data: los mismos pares más archivos. El botón «Añadir archivo» ofrece dos opciones: «Enlace al archivo o variable», el bot descarga el archivo desde el enlace y lo adjunta a la solicitud; «Archivo local», el archivo se sube desde tu equipo. Una solicitud lleva como máximo 20 archivos.
  • «Timeout»: cuánto tiempo esperar la respuesta del servidor, en segundos, de 1 a 60. Por defecto, 5.

  • «Enviar los datos del contacto en la solicitud»: añade tres campos a la solicitud: bot_id (el ID del bot), contact (los datos del contacto) y variables (las variables del contacto). En las solicitudes con cuerpo, los campos van en el cuerpo. En GET van en la cadena de consulta, y solo si la dirección ya tiene al menos un parámetro.

  • «Mostrar el cuerpo de la respuesta en el chat»: el bot envía al contacto la respuesta del servidor tal cual. El interruptor está activado por defecto; desactívalo si la respuesta es técnica.

  • «Guardar el código de respuesta en una variable»: el código de respuesta (200, 404, etc.) se guarda en la variable del contacto indicada en el campo «Variable».

  • «Guardar la respuesta JSON en variables»: reparte una respuesta JSON entre variables del contacto. En el bloque «Correspondencia de variables», escribe a la izquierda la ruta al valor separada por puntos y a la derecha el nombre de la variable. Por ejemplo, data.product.name → product. Un elemento de un array se toma por su número: items.0.price. Si en esa ruta no hay ningún valor, en la variable se escribe una cadena vacía.

  • «Servidor de la solicitud»: desde dónde se envía la solicitud: «Predeterminado», «Europa» o «Proxy SOCKS5». Para tu propio proxy, rellena «Host» y «Puerto» y, si el proxy pide inicio de sesión, «Usuario» y «Contraseña».

  • «Procesar la respuesta con JavaScript»: abre el editor de código. El código recibe la respuesta del servidor en el objeto response y puede hacer todo lo que hace el código del bloque «Intérprete de JavaScript». Los detalles están en Procesar la respuesta con código.

Más abajo en la configuración están las secciones habituales «Menú» y «Avanzado», igual que en los bloques con mensaje.

El código de respuesta va a una variable y la respuesta JSON se reparte en variables: order.id y order.statusEl código de respuesta va a una variable y la respuesta JSON se reparte en variables: order.id y order.status

Insertar datos

Las plantillas funcionan en la dirección, en los valores de los encabezados, en el cuerpo de la solicitud y en las rutas de «Correspondencia de variables»:

https://example.com/api/orders?phone={{ phone }}&city={{ $ciudad }}

En un cuerpo JSON, las plantillas se rellenan antes de analizar el cuerpo. Si el resultado no es un JSON válido (por ejemplo, el valor de una variable contenía comillas), la solicitud se envía con el cuerpo vacío y en el «Registro de ejecución» aparece el error Invalid JSON.

Una solicitud POST con el encabezado Authorization y un cuerpo JSON con plantillasUna solicitud POST con el encabezado Authorization y un cuerpo JSON con plantillas

Salidas

  • Elementos del menú: si los añadiste en «Menú», el bot espera la respuesta de la persona, como en un bloque normal con botones.
  • «Cualquier otra frase»: la persona escribió algo que no está en el menú.
  • «Sin respuesta del servidor»: el servidor no respondió en el tiempo indicado en el campo «Timeout», no se pudo establecer la conexión o la solicitud falló.
  • «Continuar»: el flujo sigue justo después de la solicitud, sin esperar la respuesta de la persona.
El bloque «Solicitud HTTP» en el esquema: salidas «Sin respuesta del servidor», «Cualquier otra frase» y «Continuar»El bloque «Solicitud HTTP» en el esquema: salidas «Sin respuesta del servidor», «Cualquier otra frase» y «Continuar»

Importante

Una respuesta con un código de error, por ejemplo 404 o 500, es una respuesta normal para el bloque: la salida «Sin respuesta del servidor» no se activa. Guarda el código de respuesta en una variable y compruébalo en el siguiente bloque.

Límites

  • Las solicitudes a direcciones internas y a las propias direcciones de la plataforma están prohibidas: esa solicitud no se envía y en el «Registro de ejecución» queda el error URL is not valid.
  • El bloque sigue como máximo cinco redirecciones seguidas.
  • Desde toda la plataforma no se envían más de 10 solicitudes por segundo a un mismo dominio. Las demás esperan en cola.
  • «Correspondencia de variables» admite hasta 300 filas.

Procesar la respuesta con código

El código del campo «Procesar la respuesta con JavaScript» se ejecuta después del resto de la configuración del bloque. La respuesta del servidor está en el objeto response:

Campo Qué contiene
response.status El código de respuesta, un número
response.body El cuerpo de la respuesta como cadena
response.data El cuerpo ya analizado, si el servidor respondió con JSON

Los detalles están en Variables integradas.

if (response.status === 200 && response.data.paid) {
    setContactVariable('paid', 'yes');
} else {
    sendMessage('El pago aún no ha llegado.');
    disableContinue();
}

Las funciones y los límites son los mismos que en el bloque «Intérprete de JavaScript». Si el código termina con un error, su texto se envía al chat y la conexión «Continuar» no se activa.

«Procesar la respuesta con JavaScript» activado: el código comprueba el código de respuesta y envía un mensaje«Procesar la respuesta con JavaScript» activado: el código comprueba el código de respuesta y envía un mensaje