§ 00آپ کو کیا چاہیے ہوگا
ہر چینل کو جوڑنے میں 5–20 منٹ لگتے ہیں۔ کام دو جگہ ہوگا: چینل کا اپنا developer console (Telegram کا BotFather، Meta کا Developer Dashboard) اور آپ کے EasyLiveChat ورک اسپیس کی Channels سکرین یہاں app.livechattools.com/channels.
چاروں چینلز EasyLiveChat میں ایک ہی ساخت رکھتے ہیں — فی رابطہ ایک نارملائزڈ Conversation، ایک inbox، ایک reply box۔ فرق صرف اس میں ہے کہ ہر provider کن credentials کا تقاضا کرتا ہے اور اس کی webhook signing اسکیم کیا ہے۔
مشترکہ تصورات
- Webhook URL. EasyLiveChat ہر integration کے لیے ایک پیدا کرتا ہے:
https://api.livechattools.com/api/channels/webhook/{channel}/{integration-id}. چھوٹے حروف میں چینل کا نام۔ یہ URL آپ provider کے ڈیش بورڈ میں پیسٹ کرتے ہیں۔ - Verify token. provider اس token کے ساتھ آپ کے webhook URL پر ایک بار GET handshake کرتا ہے؛ اگر یہ میل کھائے تو ہم ان کا challenge واپس کرتے ہیں۔ EasyLiveChat integration بناتے وقت یہ خودکار طور پر بناتا ہے — کھولیں Integration settings.
- App Secret (صرف Meta چینلز). Meta ہر webhook POST کو
x-hub-signature-256سے دستخط کرتی ہے جس کی key Meta App کا App Secret ہے — verify token نہیں۔ WhatsApp / Messenger / Instagram integration بناتے وقت اسے ایک بار پیسٹ کریں۔
§ 01Telegram
سب سے آسان چینل۔ Telegram کو developer app یا business account کی ضرورت نہیں — صرف ایک بوٹ۔ بوٹ tokens ہمیشہ زندہ رہتے ہیں اور پورا integration تقریباً پانچ منٹ لیتا ہے۔
١. BotFather سے بوٹ بنائیں
Telegram کھولیں اور چیٹ شروع کریں @BotFather. بھیجیں /newbot، ایک display name اور ایک username چنیں جو ختم ہو bot. BotFather اس شکل کا token واپس کرتا ہے 1234567890:ABCdefGHI…. کاپی کریں۔
٢. EasyLiveChat میں جوڑیں
اپنے ورک اسپیس میں Channels → Telegram Bot → Connect پر جائیں۔ بوٹ token پیسٹ کریں۔ کوئی بھی display name چنیں — یہ صرف inbox کے اندر دکھائی دیتا ہے۔ بھیجیں۔
نئی بنی قطار پر Integration settings کھولیں تاکہ Webhook secret اور integration کا callback URL ظاہر ہو۔
٣. Telegram کو ہمارے webhook کی طرف موڑیں
Telegram Bot API میں webhooks کے لیے UI نہیں؛ آپ انہیں سیٹ کرتے ہیں setWebhook. کے ذریعے۔ نیچے کے placeholders کو اپنے بوٹ token، integration ID اور webhook secret سے بدلیں، پھر ایک بار چلائیں:
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 صفر ہو جانا چاہیے۔
٤. ٹیسٹ
کھولیں t.me/yourbot_username Telegram میں، Start دبائیں، کوئی بھی پیغام بھیجیں۔ یہ ایک سیکنڈ سے کم میں آپ کے EasyLiveChat inbox میں sender کے نام اور language code کے ساتھ ظاہر ہونا چاہیے۔ ڈیش بورڈ سے جواب دیں — تھوڑی دیر میں visitor کے Telegram پر پہنچ جائے گا۔
§ 02WhatsApp Cloud
Meta Cloud API تقریباً سب کے لیے درست انتخاب ہے — مکمل hosted، ماہانہ 1,000 service conversations تک مفت، اور واحد WhatsApp transport جسے آپ کی طرف سے کوئی infrastructure نہیں چاہیے۔ سیٹ اپ Telegram سے بھاری ہے کیونکہ Meta production ٹریفک کے لیے developer app اور verified business portfolio طلب کرتی ہے۔
١. Meta developer app بنائیں
جائیں developers.facebook.com/apps → Create App پر۔ نام، email منتخب کریں، پھر اگلی سکرین پر use case “Connect with customers through WhatsApp” چنیں۔ Business Portfolio منسلک کریں — یا تو موجودہ یا Meta کا اندرونی Test Business جانچ کے لیے۔
App بننے کے بعد، Use Cases → Connect on WhatsApp → API Setup کھولیں۔ آپ کو ایک Phone Number ID نظر آئے گا (Meta کا فراہم کردہ مفت ٹیسٹ نمبر، یا اضافہ کرنے کے بعد آپ کا اپنا) اور Generate access token کا بٹن۔ اسے دبائیں، اجازت دیں، اور حاصل ہونے والے token کو کاپی کریں۔ Phone Number ID بھی کاپی کریں۔
whatsapp_business_messaging اور whatsapp_business_management اجازتوں کے ساتھ ایک کبھی منقضی نہ ہونے والا token بنائیں۔٢. App Secret حاصل کریں
اسی Meta ڈیش بورڈ میں App settings → Basic کھولیں۔ App Secret ایک Show بٹن کے پیچھے چھپا ہوا ہے — ظاہر کریں اور کاپی کریں۔ یہ وہ HMAC key ہے جس سے Meta ہر webhook POST کو دستخط کرتی ہے۔ اس کے بغیر آپ کے inbound پیغامات BAD_SIGNATURE.
٣. EasyLiveChat میں WhatsApp جوڑیں
Channels → WhatsApp Cloud → Connect. display name (آزاد)، Phone Number ID، Access Token، اور App Secret بھریں۔ بھیجیں۔ integration کی settings کھولیں تاکہ خودکار طور پر بنا webhook secret اور integration ID کاپی کر سکیں۔
٤. Meta کا webhook ترتیب دیں
Meta ڈیش بورڈ پر واپس، Use Cases → Connect on WhatsApp → 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 کی فہرست تلاش کریں اور messages کو Subscribed پر toggle کریں۔ اس toggle کے بغیر Meta webhook URL قبول تو کر لیتی ہے لیکن اس پر کبھی کچھ deliver نہیں کرتی۔
٥. ٹیسٹ recipient شامل کریں (صرف sandbox)
اگر آپ Meta کا مفت ٹیسٹ نمبر استعمال کر رہے ہیں، تو ہر recipient کو پہلے سے allow-list کرنا ہوگا۔ API Setup → To میں وہ فون نمبر شامل کریں جس کو پیغام کریں گے — Meta تصدیق کے لیے ٦ ہندسوں کا OTP SMS کرتی ہے۔ آپ پانچ ٹیسٹ recipients تک allow-list کر سکتے ہیں۔ حقیقی business نمبرز پر یہ پابندی نہیں ہے۔
§ 03Facebook Messenger
Messenger اسی Meta App، App Secret اور webhook plumbing کا استعمال کرتا ہے جو WhatsApp کرتا ہے — مگر یہ فون نمبر کے بجائے Facebook Page سے بات کرتا ہے، اور access tokens Page Access Tokens ہیں، نہ کہ WhatsApp Business tokens۔
١. اپنے Meta app میں Messenger شامل کریں
اسی app میں جو آپ نے WhatsApp کے لیے استعمال کیا (یا نیا)، Use cases → Add use cases → Business messaging کا فلٹر → Engage with customers on Messenger from Meta کھولیں۔ Save۔ اب app کے پاس دو products پہلو بہ پہلو ہیں۔
٢. Facebook Page جوڑیں
Messenger from Meta → Messenger API Settings کھولیں۔ Generate access tokens کے تحت No FB pages yet کے ساتھ Connect پر کلک کریں۔ Meta پوچھتی ہے کن Pages تک رسائی دینی ہے — وہ چنیں جس پر پیغامات وصول کرنا چاہتے ہیں، اجازتیں قبول کریں، save کریں۔
Page اب ایک کلک Page Access Token اور Page ID کے ساتھ ظاہر ہوتا ہے۔ دونوں کاپی کریں۔ Page ID وہی value ہے جسے آپ EasyLiveChat میں pageId کے طور پر پیسٹ کریں گے۔
٣. EasyLiveChat میں Messenger جوڑیں
Channels → Messenger → Connect۔ Page ID، Page Access Token اور وہی App Secret بھریں جو WhatsApp کے لیے استعمال کیا تھا۔ بھیجیں اور نئے integration کا webhook secret + ID کاپی کریں۔
٤. دو پرتوں والی webhook subscription
Messenger کی ایک خصوصیت ہے جو WhatsApp میں نہیں: کسی بھی چیز کو deliver کرنے کے لیے دو subscriptions چاہئیں۔ پہلے app-level subscription — Messenger API Settings → Configure webhooks میں پیسٹ کریں:
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 چلائیں:
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 نہیں کرتی۔ آپ سب کچھ تصدیق کر سکتے ہیں اس query سے:
curl "https://graph.facebook.com/v20.0/${APP_ID}/subscriptions?access_token=${APP_ID}|${APP_SECRET}"جواب میں ایک object ہونا چاہیے قسم page کا اور fields ایک خالی نہ ہونے والی array جس میں شامل ہو messages.
§ 04Instagram DM
Instagram messaging انہی Messenger Platform pipes پر چلتی ہے مگر دو اضافی شرائط: Instagram اکاؤنٹ Business اکاؤنٹ ہونا چاہیے (Personal یا Creator نہیں)، اور اسے اسی Business Portfolio میں ایک Facebook Page سے جڑا ہونا چاہیے۔ دونوں شرطیں پوری ہوں تو آپ کا Page Access Token Instagram کا access token بھی ہے۔
١. IG اکاؤنٹ کو Business میں تبدیل کریں
Instagram موبائل ایپ پر: Settings → Account → Switch to professional account → Business۔ کوئی بھی category چنیں۔ تبدیلی واپس کی جا سکتی ہے۔
٢. IG اکاؤنٹ کو اپنے Business Portfolio میں شامل کریں
Meta Business Suite Settings → Accounts → Instagram accounts → Add → IG credentials سے لاگ ان کریں۔ Meta تصدیق کرے گی اور Instagram Business Account ID دکھائے گی — ایک ١٧ ہندسوں کا نمبر شروع ہو رہا ہے 1784…. سے۔ کاپی کریں؛ یہ آپ کا pageId EasyLiveChat integration کے لیے ہے۔
٣. IG کو Facebook Page سے جوڑیں
یہ سب سے زیادہ نظر انداز ہونے والا قدم ہے۔ Meta Business Suite میں Facebook Page کا Inbox کھولیں — business.facebook.com/latest/inbox?asset_id={page_id}. ایک بینر لکھا ہوتا ہے “Connect to Instagram” اور Connect بٹن۔ کلک کریں، Instagram میں لاگ ان کریں، طلب کردہ اجازتیں دیں، تصدیق کریں۔ اس کے بعد Meta کی Graph API IG اکاؤنٹ کے بارے میں سوالات کا جواب دینا شروع کر دے گی جو Page کے access token کے دائرہ کار میں ہوں گے۔
٤. EasyLiveChat میں Instagram جوڑیں
Channels → Instagram DM → Connect۔ قدم ٢ سے IG Business Account ID کو بطور pageIdاستعمال کریں، Messenger کے لیے استعمال شدہ وہی Page Access Token بطور pageAccessToken، اور وہی App Secret جیسے پہلے۔
٥. دونوں پرتوں پر subscribe کریں
Instagram app-level webhooks کے لیے object=instagram استعمال کرتا ہے (Messenger نے object=page. استعمال کیا)۔ اپنے موجودہ Messenger subscription کے اوپر یہ curl لگائیں:
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}"§ 05ٹربل شوٹنگ
401 · BAD_SIGNATURE
Meta کے POST کا signature میل نہیں کھایا۔ تقریباً یقینی ہے کہ آپ نے App Secret کے خانے میں غلط قدر پیسٹ کی — یہ App settings → Basic سے Meta App کا App Secret ہونا چاہیے، نہ کہ verify token اور نہ Page Access Token۔ EasyLiveChat میں Integration settings کھولیں اور تصدیق کریں کہ ماسک شدہ App Secret قدر ٣٢ hex حروف ہے۔
404 · UNKNOWN_CHANNEL
URL میں چینل کا segment کسی معلوم adapter سے میل نہیں کھاتا۔ اسے چھوٹے حروف میں کریں ( /whatsapp/ نہ کہ /WHATSAPP/) — اگرچہ route case-insensitive ہے، بعض intermediaries مختلف انداز میں normalise کرتے ہیں۔
Handshake پاس، پیغامات نہیں آتے
Meta چینلز کے لیے، اوپر دیے گئے subscriptions چیک چلائیں۔ اگر متعلقہ object (page یا instagram یا whatsapp_business_account) کے پاس خالی fields array ہے، تو app رجسٹرڈ ہے مگر کسی ایونٹ سے subscribed نہیں — Webhook fields کی فہرست میں messages کو دوبارہ toggle کریں۔
Access token منقضی (Meta)
Meta ڈیش بورڈ یا Graph API Explorer کے Generate access token سے ملنے والے tokens تقریباً ٢٤ گھنٹے زندہ رہتے ہیں۔ کسی بھی demo سے بڑھ کر کام کے لیے System User بنائیں اور درست Page یا WhatsApp Business Account اجازتوں کے ساتھ ایک غیر منقضی token پیدا کریں۔
Telegram کچھ deliver نہیں کرتا
چلائیں getWebhookInfo — جواب میں last_error_message فیلڈ شامل ہے۔ عام قدریں: “404 Not Found” (URL میں غلط integration ID)، “SSL handshake failed” (proxy / certificate مسئلہ)۔
کیا یہ مضمون مفید تھا؟