Webhookok: aláírás ellenőrzése és újrapróbálás
Így ellenőrizd a Sayweek-Signature fejlécet kóddal, így próbáljuk újra a sikertelen kézbesítést, és ekkor kapcsolunk ki egy végpontot.
Frissítve:
Minden kézbesítés egy POST kérés JSON-törzzsel: id (eseményazonosító), event, api_version, created_at, workspace_id és data. Az aláírás bizonyítja, hogy a kérés tőlünk jön, és útközben senki nem módosította.
Fejlécek
Sayweek-Signature: t=<unix másodperc>,v1=<hex>– az aláírás.Sayweek-Event-Id– ugyanaz minden újrapróbálásnál és újraküldésnél: ezzel szűrd ki a duplikátumot.X-Sayweek-Event– az esemény neve, pl.post.published.X-Sayweek-Delivery– a kézbesítés azonosítója (a Kézbesítési napló sorai).X-Sayweek-Signature: sha256=<hex>– a régi formátum a korábbi integrációknak; új kódban aSayweek-Signaturefejlécet használd.
Az aláírás ellenőrzése
- Olvasd be a kérés nyers törzsét, pontosan úgy, ahogy megérkezett (ne parszold és ne formázd újra).
- Bontsd szét a
Sayweek-Signaturefejlécet: ataz időbélyeg, av1az aláírás (titokcsere idején többv1is lehet – bármelyik egyezése elég). - Számold ki a HMAC-SHA256 értéket az aláírási titokkal a
t.törzsszövegre (az időbélyeg, egy pont, majd a nyers törzs), hexadecimálisan. - Hasonlítsd össze állandó idejű összehasonlítással, és utasítsd el a kérést, ha nem egyezik, vagy ha a
t5 percnél régebbi (így egy elkapott kérést sem lehet később visszajátszani).
Node.js-ben: createHmac("sha256", secret).update(t + "." + rawBody).digest("hex"), majd timingSafeEqual a fejlécben kapott v1 értékkel.
Pythonban: hmac.new(secret.encode(), f"{t}.{raw_body}".encode(), hashlib.sha256).hexdigest(), majd hmac.compare_digest a v1 értékkel.
Újrapróbálás
- Sikeresnek a 2xx válasz számít, 8 másodpercen belül – válaszolj gyorsan, és a hosszabb munkát végezd utána.
- Újrapróbáljuk a hálózati hibát, az időtúllépést, a
408,409,425,429és minden5xxválaszt; a többi4xxvégleges. - A szünetek: kb. 1 perc, 4 perc, 16 perc, 1 óra, 4 óra, majd 12 óra (kis véletlen eltolással) – összesen legfeljebb 8 próbálkozás, nagyjából másfél nap alatt.
- Ha egy Zapier-, Make- vagy API-s feliratkozás
410 Goneválaszt ad, a feliratkozást töröljük.
Automatikus kikapcsolás
Ha egy végpontnál legalább 10 próbálkozás egymás után sikertelen, és ez több mint egy napja tart, a webhookot kikapcsoljuk, a tulajdonosok pedig push-értesítést és e-mailt kapnak. Egy rövid leállás tehát sosem kapcsolja ki. Visszakapcsolás: Beállítások → Összes integráció → Webhooks · n8n, a webhook sorában Bekapcsolás – ez nullázza a hibasorozatot. A tesztküldés sosem számít bele.
Hasznos volt ez a cikk?
Kapcsolódó cikkek
- Webhookok (n8n és saját szerver)Aláírt JSON a saját címedre minden kiválasztott eseménynél – újrapróbálással, kézbesítési naplóval és tesztküldéssel.
- Fejlesztői portál: leírás, kipróbáló konzol, Postman, kliensekA /fejlesztoknek oldalon megtalálod a teljes API-leírást, kipróbálhatod a hívásokat a saját fiókoddal, és letöltheted a Postman-gyűjteményt.
- REST API: API-kulcsok és jogosultságokAPI-kulcs létrehozása, a read / write / approve jogosultságok, a végpontok és a kulcs visszavonása.
- Fejlesztői eszközök: API, webhookok, MCPMit kínál a Sayweek fejlesztőknek és automatizáláshoz: REST API, aláírt webhookok, Zapier, Make, Claude és ChatGPT (MCP), iCal-link.