Naar inhoud springen

Ontwikkelaars

Webhooks

PollsLive kan ondertekende gebeurtenissen POSTen naar je eindpunt wanneer polls en livesessies veranderen, zodat je systemen in realtime reageren in plaats van te peilen.

Instellingen

Voeg een eindpunt toe in Studio → Ontwikkelaar API: voer je HTTPS URL in en selecteer de gebeurtenissen waarop u zich wilt abonneren. PollsLive toont een ondertekeningsgeheim (whsec_…) eenmalig. Bewaar dit om leveringen te verifiëren.

Evenementen

  • poll.published: A poll was published and is now live/shareable.
  • poll.closed: Voting was closed on a poll.
  • vote.created: A new vote was recorded on an async poll.
  • session.started: A live presenter session was started.
  • session.ended: A live presenter session ended.
  • response.created: An async response was recorded. Live session answers do not emit this event.

Payload

Elke levering is een JSON body met de gebeurtenisnaam, een tijdstempel en de gebeurtenisgegevens:

POST body
{
  "event": "poll.published",
  "createdAt": "2026-06-18T12:00:00.000Z",
  "data": {
    "poll": { "id": "...", "slug": "...", "title": "...", "shareUrl": "..." }
  }
}

Elk verzoek heeft ook deze headers:

  • X-PollsLive-Event: de gebeurtenisnaam.
  • X-PollsLive-Delivery: een unieke bezorg-ID.
  • X-PollsLive-Signature: t=<unix>,v1=<hex>.

Handtekeningen verifiëren

Bereken een HMAC-SHA256 van <t>.<rawBody> met behulp van je ondertekeningsgeheim en vergelijk deze met de v1 waarde (constante tijd):

Node.js
import crypto from "crypto";

function verify(rawBody, header, secret) {
  const parts = Object.fromEntries(
    header.split(",").map((kv) => kv.split("="))
  );
  const expected = crypto
    .createHmac("sha256", secret)
    .update(`${parts.t}.${rawBody}`)
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(parts.v1)
  );
}

Reageer met een 2xx-status om te bevestigen. Weiger alles wat de verificatie mislukt.

Nieuwe pogingen

Als je eindpunt onbereikbaar is of een niet-2xx-status retourneert, probeert PollsLive het opnieuw met exponentiële uitstel (ongeveer 1 m, 5 m, 30 m, 2 uur, 6 uur) tot zes pogingen. Maak je handler idempotent met behulp van de X-PollsLive-Delivery id.

Nog vragen?

Ons team helpt je graag verder.

Neem contact op

We gebruiken essentiële cookies om je ingelogd te houden en dubbele stemmen te voorkomen. Met je toestemming gebruiken we ook Cloudflare Web Analytics om paginaweergaven te tellen en de Whop Pixel om te zien welke bezoeken tot een aankoop leiden. Cookie Policy