Go टेलीग्राम बॉट के लिए आदर्श भाषा क्यों है
\nयदि आपने कभी Python में बॉट लिखे हैं, तो आप जानते हैं: सब कुछ तब तक काम करता है जब तक आप प्रदर्शन की सीमा में नहीं आ जाते। Go इस समस्या को आर्किटेक्चर स्तर पर हल करता है। यह तेज़, हल्का है और इसे वर्चुअल एनवायरनमेंट की आवश्यकता नहीं है। Go पर टेलीग्राम बॉट सिर्फ एक खिलौना नहीं है, बल्कि एक पूर्ण-विकसित सेवा है जो प्रति सेकंड हजारों अनुरोधों को संभालता है और न्यूनतम मेमोरी का उपयोग करता है।
\nइस लेख में हम शुरू से एक Golang बॉट बनाएंगे जो कमांड का जवाब देगा, संदेशों को प्रोसेस करेगा और बाहरी API के साथ भी काम करेगा। अनावश्यक सिद्धांत के बिना - केवल कोड जिसे आप तुरंत चला सकते हैं।
\n\nचरण 1: एनवायरनमेंट तैयार करना
\nGo पर टेलीग्राम बॉट लिखने से पहले, सुनिश्चित करें कि आपके पास Go संस्करण 1.20 या उच्चतर स्थापित है। इसे इस कमांड से जांचा जा सकता है:
\ngo version\nयदि Go स्थापित नहीं है - तो इसे आधिकारिक वेबसाइट से डाउनलोड करें। इंस्टॉलेशन में 2 मिनट लगते हैं।
\nआपको एक बॉट टोकन की भी आवश्यकता होगी। Telegram में जाएं, BotFather खोजें और यह कमांड चलाएं:
\n/newbot\nबॉट का नाम और username दर्ज करें। बनने के बाद BotFather एक टोकन भेजेगा - इसे सहेजें, Telegram Bot API से कनेक्ट करने के लिए इसकी आवश्यकता होगी।
\n\nचरण 2: प्रोजेक्ट संरचना
\nएक प्रोजेक्ट फ़ोल्डर बनाएं और मॉड्यूल को इनिशियलाइज़ करें:
\nmkdir my-telegram-bot\ncd my-telegram-bot\ngo mod init my-telegram-bot\nTelegram के साथ काम करने के लिए हम tgbotapi लाइब्रेरी का उपयोग करेंगे - यह सबसे लोकप्रिय Go लाइब्रेरी Telegram है। इसे इंस्टॉल करें:
\ngo get github.com/go-telegram-bot-api/telegram-bot-api/v5\nअब main.go फ़ाइल बनाएं। मूल संरचना इस प्रकार होगी:
package main\n\nimport (\n "log"\n "os"\n tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"\n)\n\nfunc main() {\n token := os.Getenv("TELEGRAM_BOT_TOKEN")\n bot, err := tgbotapi.NewBotAPI(token)\n if err != nil {\n log.Panic(err)\n }\n\n bot.Debug = true\n log.Printf("बॉट @%s चालू हुआ", bot.Self.UserName)\n\n u := tgbotapi.NewUpdate(0)\n u.Timeout = 60\n\n updates := bot.GetUpdatesChan(u)\n\n for update := range updates {\n if update.Message != nil {\n log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)\n msg := tgbotapi.NewMessage(update.Message.Chat.ID, "नमस्ते! मैं Go पर काम कर रहा हूँ!")\n bot.Send(msg)\n }\n }\n}\nबॉट चलाएं:
\nexport TELEGRAM_BOT_TOKEN="आपका_टोकन"\ngo run main.go\nTelegram में बॉट को लिखें - उसे जवाब देना चाहिए। यदि सब कुछ काम करता है, तो अगले चरण पर जाएं।
\n\nचरण 3: कमांड प्रोसेसिंग
\nसिर्फ "नमस्ते" का जवाब देना उबाऊ है। चलिए Telegram बॉट के लिए कमांड प्रोसेसिंग जोड़ते हैं। हम /start और /help कमांड लागू करेंगे:
for update := range updates {\n if update.Message != nil {\n switch update.Message.Command() {\n case "start":\n msg := tgbotapi.NewMessage(update.Message.Chat.ID, "स्वागत है! मैं Go पर एक बॉट हूँ। कमांड की सूची के लिए /help का उपयोग करें।")\n bot.Send(msg)\n case "help":\n msg := tgbotapi.NewMessage(update.Message.Chat.ID, "उपलब्ध कमांड:\\n/start - अभिवादन\\n/help - सहायता\\n/echo - संदेश दोहराएं")\n bot.Send(msg)\n default:\n msg := tgbotapi.NewMessage(update.Message.Chat.ID, "अज्ञात कमांड। /help का उपयोग करें")\n bot.Send(msg)\n }\n }\n}\nअब बॉट कमांड पर प्रतिक्रिया करता है। लेकिन यह सिर्फ शुरुआत है। Golang Telegram बॉट की असली ताकत बड़े लोड के साथ काम करने में इसका प्रदर्शन है।
\n\nचरण 4: बाहरी API के साथ काम करना
\nचलिए एक उपयोगी फंक्शन जोड़ते हैं