PHP में Telegram बॉट: शून्य से पहले अभिवादन तक
\n\nजब Telegram के लिए बॉट बनाने की बात आती है, तो सबसे पहले जो चीज़ दिमाग में आती है वह है Python। और यह तर्कसंगत है: वहाँ एक सुंदर लाइब्रेरी python-telegram-bot है, ढेर सारे ट्यूटोरियल और एक बड़ा समुदाय है। लेकिन क्या करें यदि आपका मुख्य स्टैक PHP है? या आप Python पर अलग सर्वर तैनात किए बिना जल्दी से नोटिफिकेशन के लिए एक सरल बॉट बनाना चाहते हैं?
अच्छी खबर: Telegram Bot API किसी भाषा से बंधा नहीं है। यह एक सामान्य HTTP इंटरफ़ेस है, और PHP इससे बिल्कुल अच्छी तरह से निपटता है। इस लेख में, हम देखेंगे कि PHP में Telegram बॉट को शून्य से कैसे बनाया जाए: BotFather पर पंजीकरण से लेकर एक पूर्ण बॉट तक जो कमांड का जवाब देता है, संदेश भेजता है और callback अनुरोधों को संसाधित कर सकता है। सब कुछ वास्तविक कोड उदाहरणों के साथ, बिना पानी के।
\n\nTelegram बॉट के लिए PHP क्यों सामान्य है?
\n\nकई डेवलपर्स बॉट के संदर्भ में PHP को संदेह की दृष्टि से देखते हैं। जैसे, यह "जल्दबाजी में बनाई गई साइटों" के लिए एक भाषा है, न कि वास्तविक API के लिए। वास्तव में PHP सर्वर हैंडलर की भूमिका बखूबी निभाता है: यह सरल, पूर्वानुमानित है और किसी भी होस्टिंग पर काम करता है। एक बॉट के लिए जिसे सुपर-परफॉर्मेंस की आवश्यकता नहीं है (और अधिकांश बॉट ऐसे ही होते हैं), PHP एक आदर्श विकल्प है।
\n\nसाथ ही, यदि आपके पास पहले से PHP पर कोई साइट है, तो आप बॉट को उसी होस्टिंग पर रख सकते हैं। किसी अतिरिक्त वर्कर, डेमॉन या जटिल कॉन्फ़िगरेशन की आवश्यकता नहीं है। बस एक bot.php फ़ाइल, जो webhook पर लटकी रहती है और Telegram से अनुरोधों को संसाधित करती है।
शुरू करने के लिए क्या चाहिए
\n\n- \n
- PHP 7.4+ के साथ होस्टिंग (कोई भी, यहाँ तक कि सबसे सस्ती shared-होस्टिंग भी काम करेगी)। \n
- HTTPS तक पहुँच — Telegram चाहता है कि webhook सुरक्षित प्रोटोकॉल पर काम करे। Let's Encrypt का उपयोग किया जा सकता है। \n
- Telegram में खाता — स्पष्ट है, लेकिन इसके बिना कहीं नहीं जा सकते। \n
- PHP का बुनियादी ज्ञान — यह समझना पर्याप्त है कि फ़ंक्शन, ऐरे और cURL कैसे काम करते हैं। \n
यदि यह सब है — तो चलिए शुरू करते हैं।
\n\nचरण 1. BotFather पर बॉट पंजीकृत करें
\n\nTelegram में @BotFather के साथ संवाद शुरू करें — यह बॉट का मुख्य "ब्रीडर" है। कमांड भेजें:
\n\n/newbot\n\nआपसे बॉट का नाम (यह संपर्कों में दिखाई देगा) और username (जो bot पर समाप्त होना चाहिए) दर्ज करने के लिए कहा जाएगा। उसके बाद आपको एक टोकन प्राप्त होगा — इस प्रकार की एक लंबी स्ट्रिंग:
1234567890:ABCdefGhIJKlmNoPQRsTUVwXYZ\n\nयह आपके बॉट तक पहुँच की कुंजी है। इसे किसी को न दिखाएं — टोकन जानने वाला कोई भी व्यक्ति बॉट को नियंत्रित कर सकता है।
\n\nसाथ ही, मैं तुरंत /setuserpic और /setdescription कमांड के साथ एक अवतार और विवरण सेट करने की सलाह देता हूँ। यह आवश्यक नहीं है, लेकिन बॉट को अधिक मैत्रीपूर्ण बनाता है।
चरण 2. अपडेट प्राप्त करने का तरीका चुनें
\n\nTelegram Bot API दो विकल्प प्रदान करता है:
\n\n- \n
- Polling (long polling) — आप लगातार Telegram सर्वर से पूछते हैं "क्या कोई नया संदेश है?"। यह काम करता है, लेकिन स्क्रिप्ट के निरंतर निष्पादन की आवश्यकता होती है (उदाहरण के लिए, cron के माध्यम से)। \n
- Webhook — जब कोई नया संदेश आता है तो Telegram स्वयं आपके सर्वर पर POST-अनुरोध भेजता है। यह अधिक सुविधाजनक और तेज़ है। \n
हम webhook का उपयोग करेंगे। शुरू करने के लिए, आइए जाँच करें कि आपका सर्वर HTTPS पर इंटरनेट से सुलभ है या नहीं। यदि आपके पास SSL प्रमाणपत्र नहीं है, तो Cloudflare (उनके पास मुफ्त SSL है) का उपयोग करें या बहुत कम पैसे में प्रमाणपत्र खरीदें।
\n\nWebhook सेट करें
\n\nURL पर GET-अनुरोध भेजें (आप इसे ब्राउज़र में खोल सकते हैं):
\n\nhttps://api.telegram.org/bot<टोकन>/setWebhook?url=https://आपकी_साइट/bot.php\n\n<टोकन> को अपने वास्तविक टोकन से और https://आपकी_साइट/bot.php को अपनी स्क्रिप्ट के वास्तविक पथ से बदलें। जवाब में आपको JSON प्राप्त होना चाहिए:
{"ok": true, "result": true, "description": "Webhook was set"}