HI
CopyPost खोलें

Webhook: Telegram से मैसेज CRM और अपने सर्वर पर भेजें

2 मिनट में पढ़ेंWebhookइंटीग्रेशन

Telegram webhook से हर चैनल पोस्ट CRM या अपनी HTTP सर्विस पर पाएँ: JSON फ़ॉर्मेट, लिंक के ज़रिए मीडिया और Python में सिग्नेचर की जाँच।

विषय-सूची
  1. सेटअप
  2. क्या आता है
  3. सिग्नेचर की जाँच
  4. भरोसेमंद डिलीवरी
  5. लिमिट

कभी-कभी मैसेज किसी दूसरे चैनल में नहीं, बल्कि आपके सिस्टम में चाहिए होते हैं: CRM, नॉलेज बेस, एनालिटिक्स या आपका अपना बॉट। इसके लिए पाइपलाइन में webhook हैं — हर डिलीवर हुए मैसेज पर आपके पते पर भेजी जाने वाली HTTP रिक्वेस्ट।

सेटअप #

  1. “Webhook” सेक्शन में अपनी सर्विस का पता जोड़ें, जैसे https://crm.example.com/telegram.
  2. पाइपलाइन एडिटर में यह webhook चुनें।
  3. webhook का सीक्रेट कॉपी करें — सिग्नेचर जाँचने के लिए इसकी ज़रूरत होगी।

पाइपलाइन रिसीवर चैनलों के बिना, सिर्फ़ webhook पर भी मैसेज भेज सकती है।

क्या आता है #

हर मैसेज पर (एल्बम — एक ही रिक्वेस्ट में) JSON के साथ एक POST आता है:

{
  "pipeline_id": 12,
  "account_id": 3,
  "chat_id": -1001234567890,
  "messages": [{
    "id": 4521,
    "date": 1791936000,
    "text": "हेडलाइन: आज की बड़ी ख़बर",
    "entities": [{"type": "bold", "offset": 0, "length": 7}],
    "media": {"type": "photo", "url": "https://cpo.st/m/…", "mime_type": "image/jpeg"}
  }]
}

टेक्स्ट पाइपलाइन के फ़िल्टर और रिप्लेसमेंट के बाद ही आता है। मीडिया लिंक के रूप में भेजा जाता है: फ़ाइल पहली बार खोलने पर डाउनलोड होती है और 7 दिन तक उपलब्ध रहती है।

सिग्नेचर की जाँच #

हर रिक्वेस्ट साइन की हुई होती है: हेडर X-Copyposter-Signature में webhook के सीक्रेट से बनाया गया स्ट्रिंग <X-Copyposter-Timestamp>.<रिक्वेस्ट बॉडी> का HMAC-SHA256 होता है। Python में जाँच:

import hmac, hashlib, time

def verify(secret: str, timestamp: str, body: bytes, signature: str) -> bool:
    if abs(time.time() - int(timestamp)) > 300:
        return False  # पुरानी रिक्वेस्ट — शायद दोबारा भेजी गई
    expected = "sha256=" + hmac.new(secret.encode(), timestamp.encode() + b"." + body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, signature)

भरोसेमंद डिलीवरी #

अगर सर्विस उपलब्ध नहीं है या 429/5xx लौटाती है, तो CopyPost रिक्वेस्ट 1 सेकंड, 5 सेकंड, 30 सेकंड, 2 मिनट और 10 मिनट बाद दोबारा भेजेगा। 2xx जल्दी लौटाएँ, और भारी प्रोसेसिंग बैकग्राउंड में करें।

पता पब्लिक होना चाहिए: webhook लोकल और इंटरनल पतों पर नहीं भेजे जाते।

लिमिट #

हर महीने 1000 रिक्वेस्ट मुफ़्त, उसके बाद — 10,000 रिक्वेस्ट के पैक। मौजूदा खपत “प्लान” पेज पर दिखती है।