डेवलपर्स

Webhooks

PollsLive पोल और लाइव सेशन बदलने पर आपके endpoint को हस्ताक्षरित इवेंट POST कर सकता है - ताकि आपके सिस्टम पोलिंग के बजाय वास्तविक समय में प्रतिक्रिया दें।

सेटअप

एक endpoint जोड़ें Studio → Developersमें: अपनी HTTPS URL दर्ज करें और सदस्यता लेने के लिए इवेंट चुनें। PollsLive एक साइनिंग सीक्रेट (whsec_…) केवल एक बार दिखाता है - डिलीवरी सत्यापित करने के लिए इसे संग्रहीत करें।

इवेंट

  • 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 - A participant submitted a response in a live session.

Payload

प्रत्येक डिलीवरी एक JSON बॉडी है जिसमें इवेंट का नाम, एक टाइमस्टैम्प और इवेंट डेटा होता है:

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

प्रत्येक अनुरोध में ये हेडर भी होते हैं:

  • X-PollsLive-Event - इवेंट का नाम।
  • X-PollsLive-Delivery - एक अद्वितीय डिलीवरी id।
  • X-PollsLive-Signature - t=<unix>,v1=<hex>.

हस्ताक्षर सत्यापित करना

का एक HMAC-SHA256 गणना करें <t>.<rawBody> अपने साइनिंग सीक्रेट का उपयोग करके और इसकी तुलना v1 मान से करें (स्थिर-समय):

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)
  );
}

पुष्टि करने के लिए 2xx स्थिति के साथ प्रतिक्रिया दें। जो भी सत्यापन में विफल हो उसे अस्वीकार करें।

पुनः प्रयास

यदि आपका endpoint पहुंच से बाहर है या 2xx के अलावा कोई स्थिति लौटाता है, तो PollsLive एक्सपोनेंशियल बैकऑफ़ (लगभग 1m, 5m, 30m, 2h, 6h) के साथ छह प्रयासों तक पुनः प्रयास करता है। अपने हैंडलर को idempotent बनाएं, X-PollsLive-Delivery id का उपयोग करके।

अभी भी कोई सवाल है?

हमारी टीम मदद करने में खुश होगी।

हमसे संपर्क करें
Webhooks - PollsLive डेवलपर API | PollsLive