BotFather का उपयोग करके Telegram बॉट कैसे बनाएं?

BotFather क्या है और यह क्यों आवश्यक है?
टेलीग्राम बॉट इकोसिस्टम का केंद्रबिंदु BotFather है — एक आधिकारिक बॉट जो अन्य बॉट के निर्माण, प्रबंधन और कॉन्फ़िगरेशन को संभालता है। यह एकमात्र ऐसा टूल है जिसके माध्यम से आप अपने बॉट के लिए एक अद्वितीय टोकन प्राप्त कर सकते हैं, जो टेलीग्राम एपीआई से संवाद करने की कुंजी है। इस लेख में हम विस्तार से समझेंगे कि BotFather का उपयोग करके Telegram बॉट कैसे बनाएं — आरंभ से लेकर उन्नत सेटिंग्स और समस्या निवारण तक।
BotFather तक पहुँचने के लिए बस अपने टेलीग्राम क्लाइंट (Android, iOS, डेस्कटॉप) में @BotFather सर्च करें, या सीधे t.me/botfather पर जाएँ। इसे स्टार्ट करने पर आपको विभिन्न कमांड्स की सूची दिखाई देगी। यह ट्यूटोरियल सभी प्लेटफ़ॉर्म पर समान रूप से लागू होता है, क्योंकि BotFather का इंटरफ़ेस टेक्स्ट-आधारित है और टेलीग्राम के सभी वर्ज़न पर एक जैसा काम करता है।
बॉट निर्माण की मूल प्रक्रिया
चरण 1: /newbot कमांड का उपयोग
BotFather चैट में /newbot टाइप करें — यह बॉट निर्माण की प्रारंभिक क्रिया है। इसके बाद BotFather आपसे दो जानकारियाँ माँगेगा:
- बॉट का नाम — यह उपयोगकर्ताओं को दिखने वाला नाम है (जैसे "मौसम बॉट")। इसे बाद में
/setnameसे बदला जा सकता है। - बॉट का यूज़रनेम — यह अद्वितीय होना चाहिए और
botमें समाप्त होना चाहिए (जैसेWeatherBot)। एक बार सेट करने के बाद इसे बदला नहीं जा सकता।
दोनों जानकारी देने के बाद BotFather आपको एक टोकन प्रदान करेगा — यह अल्फ़ान्यूमेरिक स्ट्रिंग (जैसे 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11) आपके बॉट की पहचान है। इसे कभी भी सार्वजनिक न करें; टोकन के माध्यम से कोई भी आपके बॉट का पूर्ण नियंत्रण ले सकता है।
⚠️ सुरक्षा टिप:
टोकन को अपने कोड में हार्डकोड न करें। इसके बजाय, इसे एनवायरनमेंट वेरिएबल (BOT_TOKEN) या सिक्योर वॉल्ट में रखें। GitHub पर अपलोड करने से पहले .gitignore में टोकन वाली फ़ाइल को जोड़ना न भूलें।
चरण 2: टोकन की बैकअप और पुनर्प्राप्ति
यदि आप टोकन खो देते हैं, तो BotFather में /token कमांड भेजें और अपने बॉट का यूज़रनेम चुनें। यह मौजूदा टोकन दिखाएगा या नया जनरेट करने का विकल्प देगा। पुराना टोकन तुरंत अमान्य हो जाएगा, इसलिए सुनिश्चित करें कि आपने अपने बॉट कोड में नया टोकन अपडेट कर दिया है।
बॉट को अनुकूलित करना: सेटिंग्स और कमांड
बुनियादी सेटिंग्स
BotFather के माध्यम से आप अपने बॉट के कई पहलुओं को कॉन्फ़िगर कर सकते हैं। नीचे मुख्य कमांड और उनके उद्देश्य दिए गए हैं:
| कमांड | कार्य |
|---|---|
| /setdescription | बॉट का संक्षिप्त विवरण सेट करता है (0-512 अक्षर) — यह उपयोगकर्ता को बॉट के बारे में बताता है। |
| /setabouttext | एक छोटा "about" टेक्स्ट (0-120 अक्षर) जो बॉट प्रोफ़ाइल में दिखता है। |
| /setuserpic | बॉट की प्रोफ़ाइल इमेज सेट करता है — कम से कम 512x512 पिक्सेल की सिफारिश की जाती है। |
| /setcommands | कमांड सूची अपलोड करता है। नीचे विस्तार से चर्चा। |
| /setprivacy | प्राइवेसी मोड टॉगल करता है — डिफ़ॉल्ट रूप से बॉट केवल वही संदेश देखता है जो उससे शुरू होते हैं या /कमांड की प्रतिक्रिया में होते हैं। |
| /setjoingroups | बॉट को ग्रुप में जोड़े जाने की अनुमति दें या रोकें। |
| /setinline | इनलाइन मोड सक्षम करता है, जिससे उपयोगकर्ता किसी भी चैट में @botusername टाइप करके बॉट को कॉल कर सकते हैं। |
इन सेटिंग्स के अलावा, आप /setcommands के माध्यम से अपने बॉट के सभी स्लैश कमांड को परिभाषित कर सकते हैं। BotFather आपसे एक टेक्स्ट फ़ाइल या सीधे मैसेज में कमांड-डिस्क्रिप्शन जोड़ी भेजने को कहेगा। फ़ॉर्मेट इस प्रकार है:
help - सहायता प्राप्त करें
settings - सेटिंग्स देखें
weather - मौसम की जानकारी प्राप्त करें
कमांड का नाम छोटा (1-32 अक्षर), केवल लोअरकेस अक्षर, अंक और अंडरस्कोर होना चाहिए। विवरण 1-256 अक्षर का हो सकता है। एक बार अपलोड करने के बाद, उपयोगकर्ताओं को टेक्स्ट इनपुट फ़ील्ड के ऊपर कमांड सुझाव दिखाई देंगे।
💡 सुझाव:
कमांड को तार्किक रूप से समूहित करें। उदाहरण के लिए, यदि आपका बॉट कई भाषाएँ सपोर्ट करता है, तो /language जैसा एक कमांड पर्याप्त है। बहुत अधिक कमांड (20 से अधिक) उपयोगकर्ता को भ्रमित कर सकते हैं।
प्राइवेसी मोड और इसके प्रभाव
डिफ़ॉल्ट रूप से, Telegram बॉट प्राइवेसी मोड में काम करते हैं। इसका अर्थ है कि जब बॉट किसी ग्रुप में होता है, तो वह केवल वही संदेश प्राप्त करता है जो:
/से शुरू होते हैं, या- बॉट को मेंशन करते हैं (
@yourbot), या - बॉट द्वारा भेजे गए मैसेज के रिप्लाई होते हैं।
यदि आप चाहते हैं कि बॉट ग्रुप के सभी संदेशों तक पहुँच रखे (उदाहरण के लिए, ऑटो-मॉडरेशन या एनालिटिक्स के लिए), तो BotFather में /setprivacy के माध्यम से प्राइवेसी मोड को DISABLED करें। यह ध्यान रखें कि तब बॉट ग्रुप में सभी मैसेज का लॉग रखेगा, जो प्राइवेसी और स्टोरेज दोनों दृष्टिकोण से चुनौतीपूर्ण हो सकता है।
उन्नत एकीकरण और बॉट प्रबंधन
Webhook बनाम Long Polling
एक बार जब आप अपना बॉट बना लेते हैं, तो आपको Telegram API से संवाद करने के लिए एक सर्वर या सर्वरलेस फंक्शन की आवश्यकता होगी। दो मुख्य विधियाँ हैं:
- Long Polling: आपका कोड बार-बार
getUpdatesएंडपॉइंट को कॉल करता है। यह सरल है और डेवलपमेंट के दौरान उपयुक्त है। - Webhook: आप Telegram को एक HTTPS URL प्रदान करते हैं, जिस पर वह नए अपडेट पुश करता है। यह प्रोडक्शन के लिए बेहतर है, क्योंकि इसमें कम विलंबता और कम बैंडविड्थ खपत होती है।
Webhook सेट करने के लिए, आप निम्नलिखित URL पर POST अनुरोध भेज सकते हैं:
सुनिश्चित करें कि आपका एंडपॉइंट HTTPS (TLS) का उपयोग करता है और एक वैध SSL प्रमाणपत्र है। Telegram केवल पोर्ट 443, 80, 88 और 8443 पर कनेक्शन स्वीकार करता है। Webhook को हटाने के लिए deleteWebhook का उपयोग करें।
बॉट को अन्य API से जोड़ना
एक सामान्य उपयोग मामला है — मौसम बॉट जो OpenWeatherMap, या AI बॉट जो OpenAI API को कॉल करता है। अनुभवजन्य अवलोकनों के अनुसार, टेलीग्राम बॉट को तीसरे पक्ष के API से जोड़ने में मुख्य चुनौती रेट लिमिट और टाइमआउट हैं। उदाहरण के लिए, यदि आपका बॉट किसी बाहरी API से डेटा लेने में 10 सेकंड लेता है, तो उपयोगकर्ता को तुरंत "कृपया प्रतीक्षा करें" संदेश भेजना बेहतर है, क्योंकि Telegram का क्लाइंट लंबे रिस्पॉन्स को डिस्कनेक्ट कर सकता है।
मल्टीपल बॉट को एक साथ प्रबंधित करना
BotFather आपको कई बॉट बनाने की अनुमति देता है। प्रत्येक बॉट का अपना टोकन और सेटिंग्स होती है। आप किसी भी समय /mybots कमांड भेजकर अपने सभी बॉट की सूची देख सकते हैं। वहाँ से आप किसी बॉट को चुनकर उसकी सेटिंग्स बदल सकते हैं, टोकन रीसेट कर सकते हैं, या बॉट को डिलीट भी कर सकते हैं।
समस्या निवारण
| लक्षण | संभावित कारण | समाधान |
|---|---|---|
| बॉट किसी मैसेज का जवाब नहीं देता | गलत टोकन, वेबहुक क्रैश, या Long Polling बंद है | BotFather में /token से टोकन जाँचें; सर्वर लॉग चेक करें; getUpdates मैन्युअल रूप से कॉल करके देखें। |
| बॉट प्राइवेसी मोड के बावजूद ग्रुप में सभी मैसेज देखता है | प्राइवेसी मोड DISABLED है | BotFather में /setprivacy → ENABLE करें। |
| /setcommands काम नहीं कर रहा | गलत फ़ॉर्मेट या बहुत लंबा विवरण | सुनिश्चित करें कि प्रति पंक्ति command - description फ़ॉर्मेट है; विवरण 256 अक्षर से कम हो। |
| टोकन लीक हो गया | Git या लॉग में टोकन दिख गया | BotFather में /token → Revoke current token. तुरंत नया टोकन लगाएँ। |
सर्वोत्तम प्रथाएँ और चेकलिस्ट
बॉट को प्रोडक्शन में लाने से पहले निम्नलिखित बिंदुओं पर ध्यान दें:
- टोकन को हमेशा एनवायरनमेंट वेरिएबल या सीक्रेट मैनेजर में रखें।
- Webhook URL पर HTTPS और वैध SSL प्रमाणपत्र अनिवार्य है।
- Long Polling का उपयोग करते समय
getUpdatesमेंtimeoutपैरामीटर 10-30 सेकंड रखें ताकि पोलिंग लूप बहुत तेज़ न चले। - उपयोगकर्ता की गोपनीयता का सम्मान करें; जब तक आवश्यक न हो, प्राइवेसी मोड ENABLED रखें।
- रेट लिमिटिंग का ध्यान रखें — Telegram API प्रति सेकंड 30 अपडेट तक की अनुमति देता है (अनुभवजन्य अवलोकन); यदि आप कई बॉट चला रहे हैं तो थ्रॉटलिंग लागू करें।
- कमांड को सार्थक और संक्षिप्त रखें; बहुत अधिक कमांड से उपयोगकर्ता भ्रमित हो सकता है।
- बॉट में एरर हैंडलिंग जोड़ें — यदि कोई बाहरी API डाउन है तो उपयोगकर्ता को उपयुक्त संदेश भेजें।
अक्सर पूछे जाने वाले प्रश्न
क्या मैं बॉट बनाने के बाद उसका नाम बदल सकता हूँ?
हाँ, आप BotFather में /setname कमांड के माध्यम से बॉट का डिस्प्ले नाम कभी भी बदल सकते हैं। ध्यान रखें कि यूज़रनेम (जो bot में समाप्त होता है) को एक बार सेट करने के बाद नहीं बदला जा सकता।
क्या BotFather के अलावा कोई अन्य तरीका है बॉट बनाने का?
नहीं। BotFather एकमात्र आधिकारिक इंटरफ़ेस है जो बॉट टोकन जनरेट करता है। कोई भी तृतीय-पक्ष टूल आपके लिए टोकन प्राप्त नहीं कर सकता; वे केवल BotFather के साथ बातचीत को ऑटोमेट कर सकते हैं, लेकिन अंततः आपको स्वयं BotFather के माध्यम से टोकन लेना होगा।
बॉट एक साथ कितने ग्रुप में जोड़ा जा सकता है?
कोई स्पष्ट ऊपरी सीमा नहीं है, लेकिन व्यवहार में यह आपके सर्वर संसाधनों और रेट लिमिट पर निर्भर करता है। बड़ी संख्या में ग्रुप होने पर Webhook का उपयोग करना और उचित कैशिंग लागू करना आवश्यक हो सकता है।
मेरा बॉट टोकन लीक हो गया, अब क्या करूँ?
तुरंत BotFather में /token कमांड भेजें, अपना बॉट चुनें, और "Revoke current token" विकल्प चुनें। इसके बाद अपने बॉट कोड में नया टोकन अपडेट करें। सुनिश्चित करें कि पुराना टोकन Git हिस्ट्री या लॉग में न रहे; यदि है तो उसे भी हटाएँ या रीराइट करें।
क्या बॉट प्राइवेट चैट में भेजे गए सभी संदेश देख सकता है?
हाँ, जब कोई उपयोगकर्ता आपके बॉट को प्राइवेट चैट में संदेश भेजता है, तो बॉट उस संदेश का पूरा टेक्स्ट (और मीडिया फ़ाइलों के आईडी) प्राप्त करता है। यह डिज़ाइन द्वारा है — उपयोगकर्ता जानबूझकर बॉट से बात कर रहा है। इसलिए बॉट को डेटा स्टोरेज और प्राइवेसी नीति के बारे में पारदर्शी होना चाहिए।
निष्कर्ष और अगले कदम
इस ट्यूटोरियल में हमने BotFather के माध्यम से Telegram बॉट बनाने की पूरी प्रक्रिया को कवर किया है — प्रारंभिक सेटअप से लेकर उन्नत सेटिंग्स, प्राइवेसी मोड, Webhook कॉन्फ़िगरेशन और सामान्य समस्याओं का निवारण तक। यह एक सीधी प्रक्रिया है जिसे कुछ ही मिनटों में पूरा किया जा सकता है।
यदि आप अभी शुरुआत कर रहे हैं, तो पहले एक सरल बॉट बनाएँ जो /start पर "Hello!" कहे। फिर धीरे-धीरे उसमें कमांड, इनलाइन मोड और बाहरी API जोड़ें। प्रत्येक चरण के बाद BotFather में सेटिंग्स को जाँचना और अपडेट करना न भूलें।
आगे की पढ़ाई के लिए, आधिकारिक Telegram Bot API दस्तावेज़ (core.telegram.org/bots/api) सबसे विश्वसनीय स्रोत है। वहाँ आपको सभी एंडपॉइंट, फ़ील्ड और उदाहरण मिलेंगे। हैप्पी कोडिंग!