Webhook galiniai taškai

Galiniais taškais pagrįsta žiniatinklio kabliukų sistema leidžia užregistruoti kelias paskirties vietas vienai organizacijai, kiekvieną su atskira paslaptimi, atskira būsena ir atskira pasirinktų įvykių tipų prenumerata. Tai rekomenduojamas modelis visoms naujoms integracijoms.

Palyginkite su senstelėjusiu vieno URL žiniatinklio kabliuku, kuris išlaikomas siekiant atgalinio suderinamumo, tačiau palaiko tik vieną URL vienai organizacijai.

Galiniai taškai

MetodasKeliasReikalingas vaidmuoAprašas
GET/v1/developer/webhook-endpointsadmin+Išvardyti galinius taškus
POST/v1/developer/webhook-endpointsadmin+Sukurti galinį tašką
PATCH/v1/developer/webhook-endpoints/{endpoint_id}admin+Atnaujinti etiketę / URL / įvykius / būseną
DELETE/v1/developer/webhook-endpoints/{endpoint_id}admin+Ištrinti galinį tašką
POST/v1/developer/webhook-endpoints/{endpoint_id}/testadmin+Siųsti pasirašytą bandomąjį pristatymą

Galinio taško objektas

{
  "id": "c4d5e6f7-...",
  "label": "Production — Call events",
  "url": "https://example.com/thunderphone/hook",
  "events": ["telephony.incoming", "telephony.complete"],
  "status": "active",
  "secret_hint": "a1b2…9f0e",
  "created_at": "2026-04-20T18:24:10.113Z",
  "updated_at": "2026-04-20T18:24:10.113Z"
}
LaukasTipasAprašas
idUUIDGalinio taško ID
labelstringRodomas pavadinimas, 1–120 simbolių
urlstringHTTPS URL; kūrimui leidžiama naudoti http://localhost
eventsarray of stringPrenumeruojami įvykių tipai (žr. galiojančias reikšmes). Tuščias masyvas prenumeruoja visus įvykius
statusstringactive, disabled (rankiniu būdu pristabdytas) arba failing (nustatoma automatiškai, kai pristatymas išnaudoja 24 val. pakartotinių bandymų grafiką negavęs nė vieno 2xx)
secret_hintstringPirmi 4 ir paskutiniai 4 pasirašymo paslapties simboliai su daugtaškiu (a1b2…9f0e) — pakanka sulyginti su vietoje išsaugota paslaptimi neatskleidžiant visos reikšmės
created_at, updated_attimestamp

Galiojantys įvykių tipai

events tikrinamas pagal šį tikslų rinkinį — sąraše nesančios reikšmės grąžina 400. Kiekvieno tipo naudingojo krūvio struktūrą žr. Įvykių kataloge.

Galinių taškų būsenos


Galinių taškų sąrašas

curl https://api.thunderphone.com/v1/developer/webhook-endpoints \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Grąžinamas galinių taškų objektų masyvas.


Sukurkite galinį tašką

curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label":  "Production — Call events",
    "url":    "https://example.com/thunderphone/hook",
    "events": ["telephony.incoming", "telephony.complete"]
  }'
result = requests.post(
    "https://api.thunderphone.com/v1/developer/webhook-endpoints",
    headers={"Authorization": "Bearer sk_live_YOUR_API_KEY"},
    json={
        "label":  "Production — Call events",
        "url":    "https://example.com/thunderphone/hook",
        "events": ["telephony.incoming", "telephony.complete"],
    },
).json()
secret = result["secret"]
endpoint_id = result["id"]

Užklausos laukai

LaukasTipasPrivalomasAprašymas
labeleilutėtaip1–120 simbolių
urleilutėtaipHTTPS URL (http leidžiamas tik localhost / 127.0.0.1)
eventsmasyvasneTuščias arba nenurodytas laukas užprenumeruoja visus įvykius. Būtina naudoti reikšmes, nurodytas Galiojantys įvykių tipai; dublikatai pašalinami

Grąžina 201 Created su galinio taško objektu ir papildomu aukščiausio lygio lauku secret, kuriame yra neapdorotas pasirašymo raktas — 48 simbolių šešioliktainė eilutė:

{
  "id": "c4d5e6f7-…",
  "label": "Production — Call events",
  "url": "https://example.com/thunderphone/hook",
  "events": ["telephony.incoming", "telephony.complete"],
  "status": "active",
  "secret_hint": "a1b2…9f0e",
  "created_at": "2026-04-20T18:24:10.113Z",
  "updated_at": "2026-04-20T18:24:10.113Z",
  "secret": "a1b2c37e08d94f5b16a2c8d90e7f3a4b5c6d7e8f90a19f0e"
}

Atnaujinkite galinį tašką

curl -X PATCH https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label":  "Production — Call + Grade events",
    "events": ["telephony.incoming", "telephony.complete", "call.graded"]
  }'
LaukasTipasAprašymas
labeleilutė
urleilutė
eventsmasyvas
statuseilutėactive arba disabled. Nustatykite active, kad iš naujo įjungtumėte galinį tašką, kurį serveris pažymėjo kaip failing

Grąžina 200 OK su atnaujintu galinio taško objektu.


Siųskite bandomąjį pristatymą

Nusiųskite sintetinį webhook.test įvykį į vieną galinį tašką naudodami įprastą pristatymo apdorojimo grandinę, įskaitant kanoninį JSON serializavimą, X-ThunderPhone-Signature, pristatymo įrašymą ir pakartotinių bandymų apskaitą. Testas nukreipiamas į pasirinktą galinį tašką, nepaisant jo events filtro.

curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-.../test \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Galinis taškas gauna tokį paketą:

{
  "data": {
    "message": "ThunderPhone webhook test",
    "sent_at": "2026-07-17T20:12:34.567890+00:00"
  },
  "event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
  "type": "webhook.test"
}

API grąžina 200 OK po pirmojo bandymo, net jei paskirties vieta grąžina klaidą. Norėdami patikrinti pristatymo rezultatą, peržiūrėkite success, status, response_code ir error:

{
  "success": true,
  "event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
  "event_type": "webhook.test",
  "status": "delivered",
  "response_code": 204,
  "error": ""
}

webhook.test yra sintetinis ir jo negalima pridėti prie galinio taško events prenumeratos. Jei pirmasis bandymas nepavyksta, pristatymas vykdomas pagal tą patį pakartotinių bandymų tvarkaraštį kaip ir įprasti įvykių pristatymai.


Ištrinti galinį tašką

curl -X DELETE https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Grąžina 204 No Content. Pristatymas į URL nedelsiant sustabdomas; vykdomi pakartotiniai bandymai nutraukiami.


Susiję