Salt la conținutul principal

Webhook-uri — evenimente de moderare în timp real în sistemele dumneavoastră

Abonați-vă la webhook-urile Telm pentru detectări de spam, interdicții, eliminări, amuțiri și evenimente de intrare sau ieșire pe propriul dumneavoastră URL. Semnate cu HMAC-SHA256 și reîncercate. Pro+.

8 min de citit
Pe scurt

Webhook-urile trimit evenimente de moderare către URL-ul dumneavoastră în momentul în care se întâmplă — detectări de spam, interdicții, eliminări, amuțiri și intrarea sau ieșirea membrilor. Fiecare livrare este semnată cu HMAC-SHA256 (verificată în raport cu un secret whsec_), poartă un id de livrare stabil pentru deduplicare și este reîncercată după un program dacă serverul dumneavoastră este inaccesibil. Webhook-urile fac parte din planul Pro și superioare.

Creați chei API și webhook-uri pe pagina Dezvoltatori.

1Ce fac webhook-urile

În loc să interogați API-ul, înregistrați un URL, iar Telm îi trimite un POST HTTP semnat ori de câte ori se întâmplă ceva în grupul dumneavoastră. Așa aduceți evenimentele de moderare în propriile dumneavoastră sisteme — un tablou de bord, un depozit de date, un canal de alertare — în timp real.

Gestionați punctele finale de webhook prin API: înregistrați un URL, alegeți la ce evenimente vă abonați, opțional limitați-le la anumite grupuri, trimiteți un ping de test și citiți jurnalul recent de livrări.

Webhook-urile necesită planul Pro sau superior (aceeași restricție ca REST API-ul complet). Pe Free și Basic puteți încerca în continuare punctul final de verificare a spamului, dar nu puteți înregistra webhook-uri.

2De ce push-ul e mai bun decât interogarea repetată

Ați putea apela punctul final al jurnalului la un interval de timp pentru a găsi evenimente noi, dar asta adaugă latență, cheltuiește cotă și poate rata momentul exact în care se întâmplă ceva. Webhook-urile inversează modelul: Telm vă spune în clipa în care se declanșează un eveniment, așa că sistemele dumneavoastră reacționează în câteva secunde.

Utilizările tipice includ oglindirea interdicțiilor în propriile dumneavoastră instrumente de administrare, alertarea unui canal de echipă când este detectat un raid, transmiterea detectărilor în analize sau declanșarea unui flux de lucru când un membru intră sau iese.

  • În timp real: aflați despre un eveniment pe măsură ce se întâmplă, nu la următoarea dumneavoastră interogare.
  • Eficient: fără citiri repetate care vă consumă cota zilnică.
  • Complet: livrările sunt reîncercate, așa că o scurtă întrerupere din partea dumneavoastră nu pierde evenimente.

3Evenimente la care vă puteți abona

Există șapte tipuri de evenimente la care vă puteți abona, acoperind verdicte de spam, sancțiuni și schimbări de apartenență. Un singur mesaj moderat poate produce mai mult de un eveniment — un mesaj de spam care se termină cu o interdicție emite atât spam.detected, cât și user.banned.

  • spam.detected — motorul a semnalat un mesaj drept spam.
  • message.suspicious — o detectare shadow (modul monitorizare) cu un scor.
  • user.banned — un membru a fost interzis.
  • user.kicked — un membru a fost eliminat.
  • user.muted — un membru a fost amuțit.
  • user.joined — un membru a intrat în grup.
  • user.left — un membru a părăsit grupul.
Există și un eveniment ping folosit doar de apelul de test, astfel încât să puteți verifica dacă punctul dumneavoastră final primește și validează livrările înainte ca evenimentele reale să înceapă să curgă. Sarcinile utile complete sunt documentate în Referința evenimentelor webhook.

4Plicul sarcinii utile

Fiecare livrare este un plic JSON cu un set mic și stabil de câmpuri la nivel superior și un obiect data specific evenimentului în interior. Puteți direcționa pe baza tipului și a orei fără a analiza detaliile până când nu aveți nevoie de ele.

  • id — un id de livrare unic; relivrările aceluiași eveniment reutilizează același id, care este modul în care deduplicați.
  • type — tipul evenimentului, unul dintre cele șapte de mai sus.
  • created_at — când s-a declanșat evenimentul, în RFC3339 UTC.
  • group_id — grupul căruia îi aparține evenimentul (când este cazul).
  • data — un obiect specific evenimentului: detaliile mesajului și ale verdictului pentru evenimentele de spam, detaliile membrului pentru evenimentele de apartenență.

5Verificarea faptului că livrările vin cu adevărat de la Telm

Fiecare livrare este semnată astfel încât serverul dumneavoastră să poată confirma că cererea a venit cu adevărat de la Telm și nu a fost modificată în tranzit. Validați semnătura înainte de a avea încredere în sarcina utilă și respingeți orice nu se potrivește.

Semnătura este un HMAC-SHA256 al marcajului de timp și al corpului brut al cererii, cu cheia secretului de semnare al punctului dumneavoastră final. Pentru a verifica, recalculați HMAC-ul peste antetul de marcaj de timp și octeții exacți pe care i-ați primit și comparați-l cu antetul de semnătură.

  • X-Telm-Signature — semnătura, formatată ca v1 urmat de HMAC-SHA256 hexazecimal al marcajului de timp unit cu corpul.
  • X-Telm-Timestamp — marcajul de timp în secunde unix care este semnat, ca să puteți respinge livrări învechite sau redate.
  • X-Telm-Event — tipul evenimentului, iar X-Telm-Delivery — id-ul de livrare pentru deduplicare.
  • Secretul de semnare este afișat o singură dată când creați punctul final și începe cu whsec_. Stocați-l în siguranță; este singurul lucru care dovedește că o livrare este autentică.
Nu omiteți niciodată verificarea semnăturii. Fără ea, oricine vă ghicește URL-ul ar putea posta evenimente false. Rețeta de verificare pas cu pas se află în Referința evenimentelor webhook.

6Livrare fiabilă, deduplicată

Livrarea este cel-puțin-o-dată: Telm se asigură că un eveniment ajunge la dumneavoastră, ceea ce înseamnă că același eveniment poate ajunge ocazional de două ori. Deoarece fiecare relivrare reutilizează același id de livrare, deduplicați stocând id-urile pe care le-ați procesat și omițând repetările.

Dacă punctul dumneavoastră final este inaccesibil sau returnează o eroare, livrarea este reîncercată după un program fix — aproximativ după un minut, cinci minute, treizeci de minute, două ore și șase ore, până la șase încercări pe parcursul a aproximativ opt ore și jumătate. Un punct final care continuă să eșueze este dezactivat automat pentru a proteja ambele părți, iar proprietarul este notificat.

  • Răspundeți rapid cu un status 2xx; efectuați munca grea asincron după confirmare.
  • Deduplicați pe id-ul de livrare — niciodată pe conținutul sarcinii utile.
  • Un punct final care eșuează de aproximativ douăzeci de ori la rând fără niciun succes într-o fereastră de 72 de ore este dezactivat automat; reactivați-l odată ce serverul dumneavoastră este sănătos.

7Gestionarea punctelor finale și citirea jurnalului

Înregistrați, editați și eliminați puncte finale de webhook prin API. Când creați unul, primiți secretul de semnare exact o dată, alegeți evenimentele la care vă abonați și opțional îl limitați la anumite grupuri. Un apel de test trimite un ping semnat, astfel încât să puteți confirma că verificarea dumneavoastră funcționează înainte ca traficul real să înceapă.

Fiecare punct final păstrează un jurnal de livrări pe care îl puteți reciti pentru a vedea ce a fost trimis, când și dacă a reușit — util pentru depanarea unui receptor fără a aștepta următorul eveniment live.

  • Creați un punct final și copiați secretul whsec_ imediat.
  • Trimiteți un ping de test pentru a valida verificarea semnăturii de la un capăt la altul.
  • Limitați un punct final la un singur grup sau lăsați-l deschis tuturor grupurilor pe care le administrați.
  • Citiți jurnalul de livrări pentru a inspecta încercările recente și rezultatele lor.

8Bune practici și greșeli frecvente

Un receptor robust urmează câteva reguli care previn cele mai frecvente probleme.

  • Verificați semnătura peste octeții bruți ai corpului — analizarea în JSON mai întâi și reserializarea pot schimba octeții și strica verificarea.
  • Returnați 2xx rapid și procesați mai târziu; un handler lent cauzează timeout-uri și reîncercări inutile.
  • Faceți gestionarea idempotentă, astfel încât un eveniment relivrat să nu numere de două ori.
  • Folosiți HTTPS pe un URL accesibil public; Telm blochează adresele interne și private și nu urmează redirecționări.
  • Păstrați secretul whsec_ în afara jurnalelor și a codului de partea clientului.
Webhook-urile captează evenimente pentru sistemele dumneavoastră, dar jurnalul de moderare rămâne înregistrarea autoritară în interiorul Telm.
V-a fost util acest articol?

Sunteți gata să vă protejați grupul?

Adăugați Telm în grupul dumneavoastră de Telegram și lăsați-l să se ocupe de spam.