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
istesten el cuerpo del mensaje: cuandoistest=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 HTTP200indica 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'
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
}
]
}
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'
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
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.
