logo
Desarrollo
Buscar
Servicio de detección de Webhook

Servicio de detección de Webhook

Permite a los desarrolladores detectar la disponibilidad del servicio de webhook de GPTBots, así como la disponibilidad de las URL de webhook configuradas en el Agent de destino.

Detectar la disponibilidad del servicio de webhook configurado en el Agent

GPTBots permite a los desarrolladores detectar mediante API la disponibilidad de todas las URL de webhook configuradas en el Agent de destino, incluida la disponibilidad de las URL de webhook configuradas para «Enviar mensaje» y «Servicio humano-webhook». Cuando el desarrollador invoca esta interfaz, GPTBots detecta automáticamente todas las URL de webhook configuradas en el Agent al que pertenece la API Key actual, sin necesidad de especificar un objetivo de detección adicional, y devuelve en la respuesta el resultado de detección de cada Webhook elemento por elemento.
Todos los servicios de Webhook del desarrollador relacionados con el campo istest son los siguientes:

  • El cuerpo de la solicitud en el que la API de envío de mensajes responde mensajes al webhook contiene este campo, Ver detalles
  • El cuerpo de la solicitud que recibe las notificaciones de solicitud de conversación del servicio humano y los mensajes del usuario contiene este campo, Ver detalles

Cuando el servicio de Webhook del desarrollador reciba una solicitud, debe identificar el campo istest en el cuerpo del mensaje: cuando istest=true, se trata de una solicitud de prueba de disponibilidad y no debe procesarse como un mensaje de negocio real (por ejemplo, no almacenarlo, no activar el servicio humano, etc.); devolver el código de estado HTTP 200 indica que ese Webhook está disponible.

Método de solicitud

POST

URL de solicitud

https://api-${endpoint}.gptbots.ai/v1/webhook/check

Autenticación de la solicitud

Para más detalles, consulte la descripción del método de autenticación en Visión general de la API. Esta interfaz identifica el Agent de destino mediante la API Key y detecta los Webhooks configurados en ese Agent.

Solicitud

Ejemplo de solicitud

curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/webhook/check' \ -H 'Authorization: Bearer ${API Key}' \ -H 'Content-Type: application/json'
                      
                      curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/webhook/check' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json'

                    
Este bloque de código en una ventana flotante

Cabeceras de la solicitud

Campo Tipo Descripción
Authorization Bearer ${API Key} Use Authorization: Bearer ${API Key} para la autenticación de la invocación; obtenga la clave en la página de claves de API y úsela como API Key.
Content-Type application/json Tipo de datos; su valor es application/json.

Parámetros de la solicitud

Esta interfaz no requiere parámetros de solicitud; GPTBots detectará automáticamente todas las URL de webhook configuradas en el Agent al que pertenece la API Key actual.

Respuesta

Ejemplo de respuesta

{ "results": [ { "type": "message", "component_id": null, "component_name": null, "webhook_url": "https://your_domain/webhook/message", "reachable": true, "http_status": 200, "latency_ms": 156 }, { "type": "human_service", "component_id": "665d88b03ce2b13cf2d57346", "component_name": "人工服务-售前", "webhook_url": "https://your_domain/presale/human/service/conversation/establish", "reachable": true, "http_status": 200, "latency_ms": 188 }, { "type": "human_service", "component_id": "665d88b03ce2b13cf2d57347", "component_name": "人工服务-售后", "webhook_url": "https://your_domain/aftersale/human/service/conversation/establish", "reachable": false, "http_status": 502, "latency_ms": 3000 } ] }
                      
                      {
  "results": [
    {
      "type": "message",
      "component_id": null,
      "component_name": null,
      "webhook_url": "https://your_domain/webhook/message",
      "reachable": true,
      "http_status": 200,
      "latency_ms": 156
    },
    {
      "type": "human_service",
      "component_id": "665d88b03ce2b13cf2d57346",
      "component_name": "人工服务-售前",
      "webhook_url": "https://your_domain/presale/human/service/conversation/establish",
      "reachable": true,
      "http_status": 200,
      "latency_ms": 188
    },
    {
      "type": "human_service",
      "component_id": "665d88b03ce2b13cf2d57347",
      "component_name": "人工服务-售后",
      "webhook_url": "https://your_domain/aftersale/human/service/conversation/establish",
      "reachable": false,
      "http_status": 502,
      "latency_ms": 3000
    }
  ]
}

                    
Este bloque de código en una ventana flotante

Respuesta de éxito

Campo Tipo Descripción
results JSON Array Lista de resultados de detección; devuelve elemento por elemento el resultado de detección de cada Webhook configurado en el Agent. Los Webhooks no configurados no aparecen en la lista. Cuando un mismo Agent tiene configurados varios componentes de servicio humano (handoff), cada componente corresponde a un resultado human_service.
type string Tipo de Webhook. message: Webhook que recibe los mensajes de respuesta del Agent; human_service: Webhook configurado en el modo webhook del componente de servicio humano.
component_id string ID identificador único del componente de servicio humano (handoff), utilizado para distinguir el escenario en el que se han configurado varios componentes de servicio humano. Es null cuando el tipo es message.
component_name string Nombre del componente de servicio humano (handoff). Es null cuando el tipo es message.
webhook_url string URL del Webhook detectado.
reachable boolean Si el Webhook está disponible. true indica que está disponible y false indica que no lo está.
http_status int Código de estado HTTP devuelto por la solicitud de detección; es null o 0 cuando la conexión falla o se agota el tiempo de espera.
latency_ms long Tiempo empleado por la solicitud de detección (en milisegundos).

Recomendaciones para determinar la disponibilidad

GPTBots envía a la URL del Webhook una solicitud de detección con istest=true siguiendo el formato de mensaje estándar y determina la disponibilidad según el resultado devuelto:

Situación Determinación
Se devuelve el código de estado HTTP 200 El Webhook está disponible (reachable=true)
Se devuelve un código distinto de 200 (como 4xx/5xx) / la solicitud se agota / la conexión falla El Webhook no está disponible (reachable=false)

Respuesta de error

Campo Tipo Descripción
code int Código de error.
message string Detalles del error.

Códigos de error

Code Message
40000 Error de parámetro
40127 Error de autenticación del desarrollador
40378 Agente eliminado
40379

Detección del estado del servicio de Webhook de GPTBots

GPTBots proporciona una interfaz de monitorización de estado para detectar el servicio de webhook; los desarrolladores pueden invocar esta interfaz para comprobar si el servicio de webhook de GPTBots funciona con normalidad y está disponible. Si la interfaz devuelve el código de estado HTTP 200 y el cuerpo de la respuesta es el identificador en inglés de servicio normal (como service is normal), significa que el servicio de webhook de GPTBots funciona con normalidad y está disponible. Esta interfaz no requiere autenticación y devuelve texto sin formato.

Método de solicitud

GET

URL de solicitud

https://api.gptbots.ai/v1/webhook/service/health

Ejemplo de solicitud

curl -X GET 'https://api.gptbots.ai/v1/webhook/service/health'
                      
                      curl -X GET 'https://api.gptbots.ai/v1/webhook/service/health'

                    
Este bloque de código en una ventana flotante

Respuesta

Cuando el servicio de GPTBots funciona con normalidad y está disponible, devuelve el código de estado HTTP 200 y el cuerpo de la respuesta devuelve el identificador en inglés de servicio normal.

service is normal
                      
                      service is normal

                    
Este bloque de código en una ventana flotante

Recomendaciones para determinar la disponibilidad

El invocador solo necesita usar el código de estado HTTP como criterio:

Situación Determinación
Se devuelve 200 y el cuerpo de la respuesta es service is normal El servicio de GPTBots funciona con normalidad y está disponible
Se devuelve un código distinto de 200 (como 5xx) / la solicitud se agota / la conexión falla El servicio de GPTBots no está disponible

Se recomienda configurar un tiempo de espera de solicitud razonable (por ejemplo, de 3 a 5 segundos) y sondear con una frecuencia fija (QPM:3); esta interfaz no requiere autenticación, por lo que no es necesario incluir la API Key al invocarla.