Webhook-Prüfdienst
Ermöglicht Entwickler:innen die Prüfung der Verfügbarkeit des GPTBots-Webhook-Dienstes sowie die Prüfung der Verfügbarkeit der für den Ziel-Agent konfigurierten Webhook-URL.
Verfügbarkeit der für den Agent konfigurierten Webhook-Dienste prüfen
GPTBots ermöglicht Entwickler:innen, die Verfügbarkeit aller für den Ziel-Agent konfigurierten Webhook-URLs per API zu prüfen, einschließlich der für „Nachricht senden" und „Menschlicher Service – Webhook" konfigurierten Webhook-URLs. Beim Aufruf dieser Schnittstelle prüft GPTBots automatisch alle für den zum aktuellen API Key gehörenden Agent konfigurierten Webhook-URLs, ohne dass ein zusätzliches Prüfziel angegeben werden muss, und gibt das Prüfergebnis für jeden Webhook einzeln in der Antwort zurück.
Die vom Feld istest betroffenen Webhook-Dienste von Entwickler:innen sind die folgenden:
- Der Anfragekörper, mit dem die Nachricht-senden-API Antwortnachrichten an den Webhook sendet, enthält dieses Feld, Details anzeigen
- Der Anfragekörper für den Empfang von Benachrichtigungen über Dialoganfragen des menschlichen Service und von Nutzernachrichten enthält dieses Feld, Details anzeigen
Der Webhook-Dienst von Entwickler:innen sollte beim Empfang einer Anfrage das Feld
istestim Nachrichtenkörper auswerten: Beiistest=truehandelt es sich um eine Verfügbarkeitsprüfanfrage, die nicht als echte Geschäftsnachricht verarbeitet werden sollte (also nicht speichern, keinen menschlichen Service auslösen usw.); die Rückgabe des HTTP-Statuscodes200bedeutet, dass dieser Webhook verfügbar ist.
Anfragemethode
POST
Anfrage-URL
https://api-${endpoint}.gptbots.ai/v1/webhook/check
Authentifizierung
Siehe API-Übersicht für die Erläuterungen zur Authentifizierung. Diese Schnittstelle identifiziert den Ziel-Agent über den API Key und prüft die unter diesem Agent konfigurierten Webhooks.
Anfrage
Beispielanfrage
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/webhook/check' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json'
Anfrage-Header
| Feld | Typ | Beschreibung |
|---|---|---|
| Authorization | Bearer ${API Key} | Verwenden Sie Authorization: Bearer ${API Key} für die Authentifizierung. Den Schlüssel erhalten Sie auf der API-Key-Seite als API Key. |
| Content-Type | application/json | Datentyp, auf application/json setzen. |
Anfrageparameter
Diese Schnittstelle erfordert keine Übergabe von Anfrageparametern; GPTBots prüft automatisch alle für den zum aktuellen API Key gehörenden Agent konfigurierten Webhook-URLs.
Antwort
Beispielantwort
{
"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
}
]
}
Erfolgsantwort
| Feld | Typ | Beschreibung |
|---|---|---|
| results | JSON Array | Liste der Prüfergebnisse; gibt das Prüfergebnis für jeden für diesen Agent konfigurierten Webhook einzeln zurück. Nicht konfigurierte Webhooks erscheinen nicht in der Liste. Sind für denselben Agent mehrere Komponenten für menschlichen Service (Handoff) konfiguriert, entspricht jede Komponente einem eigenen human_service-Ergebnis. |
| type | string | Webhook-Typ. message: Webhook, der Antwortnachrichten des Agents empfängt; human_service: Webhook, der im Webhook-Modus der Komponente für menschlichen Service konfiguriert ist. |
| component_id | string | Eindeutige Kennung (ID) der Komponente für menschlichen Service (Handoff); dient zur Unterscheidung von Szenarien mit mehreren konfigurierten Komponenten für menschlichen Service. Beim Typ message ist sie null. |
| component_name | string | Name der Komponente für menschlichen Service (Handoff). Beim Typ message ist er null. |
| webhook_url | string | Die geprüfte Webhook-URL. |
| reachable | boolean | Ob dieser Webhook verfügbar ist. true bedeutet verfügbar, false bedeutet nicht verfügbar. |
| http_status | int | Der von der Prüfanfrage zurückgegebene HTTP-Statuscode; bei fehlgeschlagener Verbindung oder Zeitüberschreitung ist er null oder 0. |
| latency_ms | long | Dauer der Prüfanfrage (in Millisekunden). |
Empfehlung zur Verfügbarkeitsbeurteilung
GPTBots sendet die Prüfanfrage mit istest=true im Standard-Nachrichtenformat an die Webhook-URL und beurteilt die Verfügbarkeit anhand des Rückgabeergebnisses:
| Situation | Beurteilung |
|---|---|
Rückgabe des HTTP-Statuscodes 200 |
Dieser Webhook ist verfügbar (reachable=true) |
Rückgabe ungleich 200 (z. B. 4xx/5xx) / Zeitüberschreitung / Verbindungsfehler |
Dieser Webhook ist nicht verfügbar (reachable=false) |
Fehlerantwort
| Feld | Typ | Beschreibung |
|---|---|---|
| code | int | Fehlercode. |
| message | string | Fehlerdetails. |
Fehlercodes
| Code | Message |
|---|---|
| 40000 | Parameterfehler |
| 40127 | Authentifizierung des Entwicklers fehlgeschlagen |
| 40378 | Agent gelöscht |
| 40379 |
Statusprüfung des GPTBots-Webhook-Dienstes
GPTBots stellt eine Health-Monitoring-Schnittstelle zur Prüfung des Webhook-Dienstes bereit; Entwickler:innen können diese Schnittstelle aufrufen, um zu ermitteln, ob der GPTBots-Webhook-Dienst normal verfügbar ist. Gibt die Schnittstelle den HTTP-Statuscode 200 zurück und enthält der Antwortkörper die englische Kennzeichnung für einen normalen Dienst (z. B. service is normal), bedeutet dies, dass der GPTBots-Webhook-Dienst normal verfügbar ist. Diese Schnittstelle erfordert keine Authentifizierung und gibt Klartext zurück.
Anfragemethode
GET
Anfrage-URL
https://api.gptbots.ai/v1/webhook/service/health
Beispielanfrage
curl -X GET 'https://api.gptbots.ai/v1/webhook/service/health'
Antwort
Ist der GPTBots-Dienst normal verfügbar, wird der HTTP-Statuscode 200 zurückgegeben und der Antwortkörper enthält die englische Kennzeichnung für einen normalen Dienst.
service is normal
Empfehlung zur Verfügbarkeitsbeurteilung
Der Aufrufer muss lediglich den HTTP-Statuscode als Kriterium heranziehen:
| Situation | Beurteilung |
|---|---|
Rückgabe 200 und Antwortkörper service is normal |
GPTBots-Dienst normal verfügbar |
Rückgabe ungleich 200 (z. B. 5xx) / Zeitüberschreitung / Verbindungsfehler |
GPTBots-Dienst nicht verfügbar |
Es wird empfohlen, ein angemessenes Anfrage-Timeout (z. B. 3–5 Sekunden) festzulegen und mit fester Frequenz abzufragen (QPM:3); diese Schnittstelle ist authentifizierungsfrei, beim Aufruf muss kein API Key mitgeführt werden.
