दस्तावेज़/चैनल~ 12 मिनट का पठन

अध्याय 03 · चैनल

हर चैनल को कनेक्ट करें
एक ही इनबॉक्स में।

Telegram, WhatsApp Cloud, Facebook Messenger और Instagram DM — एंड-टू-एंड वायर्ड। नीचे का हर चरण लाइव Meta dashboards और Telegram Bot API के विरुद्ध सत्यापित है। जहां Meta किसी चीज़ को एक नाम देता है और हम दूसरा, हम दोनों कहते हैं।

§ 00आपको क्या चाहिए

हर चैनल को 5–20 मिनट लगते हैं। आप दो जगह काम करेंगे: चैनल का अपना डेवलपर कंसोल (Telegram का BotFather, Meta Developer Dashboard) और आपके EasyLiveChat workspace के अंदर Channels स्क्रीन — app.livechattools.com/channels.

चारों चैनल EasyLiveChat में एक ही आर्किटेक्चर साझा करते हैं — प्रति संपर्क एक normalized Conversation, एक इनबॉक्स, एक reply box। अंतर हर provider द्वारा मांगे जाने वाले credentials में और उनके webhook signing scheme में है।

साझा अवधारणाएं

  • Webhook URL। EasyLiveChat प्रति integration एक बनाता है: https://api.livechattools.com/api/channels/webhook/{channel}/{integration-id}. लोअरकेस channel नाम। आप यह URL provider के dashboard में पेस्ट करते हैं।
  • Verify token। Provider इस token के साथ आपके webhook URL पर एक बार GET handshake करता है; मेल खाने पर हम उनका challenge वापस गूंजते हैं। integration बनाते समय EasyLiveChat अपने आप generate करता है — खोलें Integration settings.
  • App Secret (केवल Meta channels)। Meta हर webhook POST को x-hub-signature-256 के साथ sign करता है — Meta App के App Secret से keyed, verify token नहीं। WhatsApp / Messenger / Instagram integration बनाते समय आप एक बार पेस्ट करेंगे।

§ 01Telegram

सबसे आसान चैनल। Telegram को developer app या business account की ज़रूरत नहीं — बस एक bot। Bot tokens हमेशा के लिए चलते हैं और पूरा integration लगभग पांच मिनट लेता है।

1. BotFather से एक bot बनाएं

Telegram खोलें और chat शुरू करें — @BotFather. भेजें /newbot, एक display name और एक username चुनें जो bot. पर खत्म हो। BotFather इस रूप में token भेजता है: 1234567890:ABCdefGHI…. इसे कॉपी करें।

2. EasyLiveChat में connect करें

अपने workspace में Channels → Telegram Bot → Connect पर जाएं। Bot token पेस्ट करें। कोई भी display name चुनें — यह केवल inbox में दिखता है। Submit करें।

नई पंक्ति पर Integration settings खोलें ताकि Webhook secret और integration की callback URL दिखे।

3. Telegram को हमारे webhook पर इंगित करें

Telegram Bot API का webhooks के लिए UI नहीं है; आप इसे सेट करते हैं setWebhook. के माध्यम से। नीचे के placeholders को अपने bot token, integration ID और webhook secret से बदलें, फिर इसे एक बार चलाएं:

bashTelegram webhook पंजीकृत करें
curl -X POST "https://api.telegram.org/bot${BOT_TOKEN}/setWebhook" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://api.livechattools.com/api/channels/webhook/telegram/${INTEGRATION_ID}",
    "secret_token": "${WEBHOOK_SECRET}",
    "allowed_updates": ["message", "edited_message"]
  }'

Telegram जवाब देता है {"ok":true,"description":"Webhook was set"}. । सत्यापित करें getWebhookInfoके साथ — pending_update_count 0 तक गिरना चाहिए।

4. परीक्षण करें

Telegram में t.me/yourbot_username खोलें, Start दबाएं, कोई भी संदेश भेजें। यह 1 सेकंड से कम में आपके EasyLiveChat inbox में sender का नाम और language code के साथ दिखना चाहिए। Dashboard से जवाब दें — यह कुछ ही क्षणों में visitor के Telegram पर पहुंच जाएगा।

§ 02WhatsApp Cloud

Meta Cloud API लगभग सभी के लिए सही विकल्प है — पूरी तरह hosted, महीने में 1000 service conversations तक मुफ्त, और एकमात्र WhatsApp transport जिसमें आपकी ओर से शून्य infrastructure चाहिए। सेटअप Telegram से भारी है क्योंकि Meta production traffic के लिए एक developer app और verified business portfolio मांगता है।

1. एक Meta developer app बनाएं

जाएं developers.facebook.com/apps → Create App। एक नाम, एक email चुनें, फिर अगली screen पर “Connect with customers through WhatsApp” use case चुनें। एक Business Portfolio संलग्न करें — मौजूदा या मूल्यांकन के लिए Meta का built-in Test Business।

App बनने के बाद Use Cases → Connect on WhatsApp → API Setup खोलें। आप एक Phone Number ID (Meta द्वारा मुफ्त test number, या जोड़ने पर आपका अपना) और एक Generate access token बटन देखेंगे। क्लिक करें, अनुमोदित करें और परिणामी token कॉपी करें। Phone Number ID भी कॉपी करें।

Token जीवनकाल। Generate बटन का token अल्पकालिक है (लगभग 24 घंटे)। Production के लिए Business Settings → Users → System Users में एक System User बनाएं, WhatsApp Business Account assign करें, और whatsapp_business_messaging और whatsapp_business_management अनुमतियों के साथ कभी-समाप्त-न-होने वाला token बनाएं।

2. App Secret प्राप्त करें

उसी Meta dashboard में App settings → Basic खोलें। App Secret एक Show बटन के पीछे छिपा है — प्रकट करें और कॉपी करें। यह HMAC key है जिससे Meta हर webhook POST को sign करता है। इसके बिना आपके आने वाले messages इस रूप में अस्वीकृत होंगे: BAD_SIGNATURE.

3. EasyLiveChat में WhatsApp connect करें

Channels → WhatsApp Cloud → Connect। Display name (मुक्त), Phone Number ID, Access Token और App Secret भरें। Submit। Auto-generated webhook secret और integration ID कॉपी करने के लिए integration की settings खोलें।

4. Meta का webhook configure करें

Meta dashboard में वापस, Use Cases → Connect on WhatsApp → Configuration पर जाएं। पेस्ट करें:

configMeta में WhatsApp webhook configuration
Callback URL : https://api.livechattools.com/api/channels/webhook/whatsapp/${INTEGRATION_ID}
Verify token : ${WEBHOOK_SECRET}

Verify and save क्लिक करें। Meta एक GET handshake भेजता है — verify token मेल खाने पर हम उनका challenge गूंजते हैं। उसी पेज पर Webhook fields list ढूंढें और messages को Subscribed पर toggle करें। इस toggle के बिना Meta webhook URL स्वीकार करता है पर कुछ भी deliver नहीं करता।

5. एक test recipient जोड़ें (केवल sandbox)

यदि आप Meta का मुफ्त test number उपयोग कर रहे हैं, तो भेजने से पहले हर recipient को allow-list करना होगा। API Setup → To में वह number जोड़ें जिस पर आप messages भेजेंगे — Meta verify करने के लिए 6-अंकीय OTP SMS से भेजता है। पांच test recipients तक allow कर सकते हैं। असली business numbers में यह प्रतिबंध नहीं है।

§ 03Facebook Messenger

Messenger उसी Meta App, App Secret और webhook plumbing का उपयोग करता है जो WhatsApp करता है — पर phone number के बजाय Facebook Page से बात करता है, और access tokens Page Access Tokens हैं, WhatsApp Business tokens नहीं।

1. अपनी Meta app में Messenger जोड़ें

उसी app में जो आपने WhatsApp के लिए उपयोग की (या नई), Use cases → Add use cases → Business messaging फ़िल्टर करें → Engage with customers on Messenger from Meta। Save। App में अब दो products साथ-साथ हैं।

2. एक Facebook Page कनेक्ट करें

Messenger from Meta → Messenger API Settings खोलें। Generate access tokens के अंतर्गत, No FB pages yet के बगल में Connect क्लिक करें। Meta पूछता है किन Pages को access देना है — चुनें कि किस पर messages प्राप्त करना है, अनुमतियां स्वीकारें, save करें।

Page अब एक-क्लिक Page Access Token और Page ID के साथ दिखता है। दोनों कॉपी करें। Page ID वह मान भी है जो आप EasyLiveChat में pageId के रूप में पेस्ट करेंगे।

3. EasyLiveChat में Messenger connect करें

Channels → Messenger → Connect। Page ID, Page Access Token और WhatsApp के लिए उपयोग किया गया वही App Secret भरें। Submit करें और नई integration का webhook secret + ID कॉपी करें।

4. दो-परत वाली webhook subscription

Messenger की एक विचित्रता है जो WhatsApp में नहीं है: कुछ भी deliver करने के लिए दो subscriptions चाहिए। पहले app-level subscription — Messenger API Settings → Configure webhooks में पेस्ट करें:

configMessenger app-level webhook config
Callback URL : https://api.livechattools.com/api/channels/webhook/messenger/${INTEGRATION_ID}
Verify token : ${WEBHOOK_SECRET}

Verify and save क्लिक करें, फिर Webhook fields का विस्तार करें और messages on करें। फिर Page-level subscription, जो आप UI से नहीं कर सकते — यह curl चलाएं:

bashPage को app से subscribe करें
curl -X POST "https://graph.facebook.com/v20.0/${PAGE_ID}/subscribed_apps" \
  -d "subscribed_fields=messages,messaging_postbacks,message_deliveries,message_reads" \
  -d "access_token=${PAGE_ACCESS_TOKEN}"

Page-level subscribe के बिना, Meta app subscription पर {"success":true} लौटाता है पर webhook कभी fire नहीं करता। आप पुष्टि कर सकते हैं कि सब कुछ wired है, यह query करके:

bashदोनों subscription layers की पुष्टि करें
curl "https://graph.facebook.com/v20.0/${APP_ID}/subscriptions?access_token=${APP_ID}|${APP_SECRET}"

Response में page टाइप का object होना चाहिए, गैर-खाली fields array के साथ जिसमें messages.

§ 04Instagram DM

Instagram messaging उन्हीं Messenger Platform pipes से जाती है पर दो आवश्यकताएं जोड़ती है: Instagram account एक Business account होना चाहिए (personal या Creator नहीं), और उसी Business Portfolio में एक Facebook Page से connected होना चाहिए। दोनों सच होने पर आपका Page Access Token आपका Instagram access token भी है।

1. IG account को Business में बदलें

Instagram mobile app पर: Settings → Account → Switch to professional account → Business। कोई भी category। रूपांतरण उलटा जा सकता है।

2. IG account अपने Business Portfolio में जोड़ें

Meta Business Suite Settings → Accounts → Instagram accounts → Add → IG credentials से login करें। Meta पुष्टि करता है और IG account का Instagram Business Account ID दिखाता है — 17 अंकों की संख्या जो 1784…. से शुरू होती है। कॉपी करें; यह आपका pageId है — EasyLiveChat integration के लिए।

3. IG को Facebook Page से जोड़ें

यह सबसे ज़्यादा छूटने वाला चरण है। Meta Business Suite में Facebook Page का Inbox खोलें — business.facebook.com/latest/inbox?asset_id={page_id}. एक banner लिखा है “Connect to Instagram” साथ Connect बटन। क्लिक करें, Instagram में login करें, अनुरोधित अनुमतियां दें, पुष्टि करें। इसके बाद Meta का Graph API Page के access token के scope में IG account के बारे में सवालों का जवाब देना शुरू कर देगा।

4. EasyLiveChat में Instagram connect करें

Channels → Instagram DM → Connect। चरण 2 से Instagram Business Account ID को pageIdके रूप में, Messenger के लिए उपयोग किया गया वही Page Access Token को pageAccessTokenके रूप में, और पहले वाला ही App Secret उपयोग करें।

5. दोनों परतों पर subscribe करें

Instagram app-level webhooks के लिए object=instagram का उपयोग करता है (Messenger ने object=page. का उपयोग किया)। मौजूदा Messenger subscription के ऊपर यह curl जोड़ें:

bashapp को Instagram messages के लिए subscribe करें
curl -X POST "https://graph.facebook.com/v20.0/${APP_ID}/subscriptions" \
  -d "object=instagram" \
  -d "callback_url=https://api.livechattools.com/api/channels/webhook/instagram/${INTEGRATION_ID}" \
  -d "verify_token=${WEBHOOK_SECRET}" \
  -d "fields=messages,messaging_postbacks,message_reactions" \
  -d "access_token=${APP_ID}|${APP_SECRET}"
Development-mode delivery नियम। जबकि आपकी Meta app unpublished है, Meta Instagram webhook events केवल उन senders से deliver करता है जो app admins, developers या testers हैं। असली users के random DMs चुपचाप गिरा दिए जाते हैं। टीम के बाहर किसी के साथ test करने के लिए, उन्हें App Dashboard → Roles → Roles में Tester के रूप में जोड़ें और invite स्वीकार करवाएं। किसी भी sender को स्वीकार करने के लिए, आपको app को App Review के माध्यम से publish करना होगा।

§ 05समस्या निवारण

401 · BAD_SIGNATURE

Meta का POST signature मेल नहीं खाया। आपने लगभग निश्चित रूप से App Secret field में गलत मान पेस्ट किया — यह App settings → Basic से Meta App का App Secret होना चाहिए, verify token नहीं और Page Access Token नहीं। EasyLiveChat में Integration settings खोलें और जांचें कि masked App Secret मान 32 hex वर्ण है।

404 · UNKNOWN_CHANNEL

URL में channel segment किसी ज्ञात adapter से मेल नहीं खाता। इसे lowercase करें ( /whatsapp/ नहीं /WHATSAPP/) — हालांकि route case-insensitive है, कुछ intermediaries अलग तरीके से normalize करते हैं।

handshake पास, पर messages नहीं आते

Meta channels के लिए ऊपर का subscriptions check चलाएं। यदि संबंधित object (page या instagram या whatsapp_business_account) के पास खाली fields array है, तो app registered है पर किसी भी event के लिए subscribed नहीं — Webhook fields list में messages को फिर से toggle करें।

access token समाप्त (Meta)

Meta dashboard में Generate access token बटन से या Graph API Explorer से प्राप्त tokens लगभग 24 घंटे जीवित रहते हैं। Demo से परे किसी भी चीज़ के लिए, एक System User provision करें और सही Page या WhatsApp Business Account अनुमतियों के साथ कभी-समाप्त-न-होने वाला token बनाएं।

Telegram कुछ भी deliver नहीं करता

चलाएं getWebhookInfo — response में एक last_error_message field शामिल है। सामान्य मान: “404 Not Found” (URL में गलत integration ID), “SSL handshake failed” (proxy / certificate समस्या)।

क्या यह लेख उपयोगी था?

संपादन सुझाएँ ↗