Go चैटबॉट के लिए सबसे अच्छा विकल्प क्यों है?
\n\nअगर आपने कभी Python में चैटबॉट लिखा है, तो आप जानते हैं: वह काम करता है। लेकिन जब लोड हजारों रिक्वेस्ट प्रति सेकंड तक बढ़ जाता है, तो Python "सोचने" लगता है। Go (या Golang) इसलिए बनाया गया है कि वह न सोचे — वह बस करता है। उच्च प्रदर्शन, बिल्ट-इन नेटवर्किंग, गोरूटीन (हल्के थ्रेड) और न्यूनतम मेमोरी खपत Go को उच्च-लोड चैटबॉट बनाने के लिए सबसे अच्छी भाषा बनाते हैं।
\n\nइस मार्गदर्शिका में हम Go में एक पूर्ण Telegram बॉट बनाएंगे, जो कमांड को प्रोसेस करेगा, API के साथ काम करेगा और आसानी से स्केल होगा। आपको सिर्फ थ्योरी नहीं, बल्कि तैयार कोड मिलेगा जिसे आप 5 मिनट में चला सकते हैं।
\n\nहम क्या बनाएंगे?
\n\nहमारा Go बॉट यह कर पाएगा:
\n- \n
/startकमांड पर स्वागत संदेश भेजना। \n - टेक्स्ट संदेश लेना और उन्हें अपरकेस में लौटाना (एक "व्यक्तित्व" वाला इको-बॉट)। \n
- एरर हैंडल करना और एक्शन को लॉग करना। \n
- Telegram Bot API के माध्यम से काम करना (चैटबॉट के लिए सबसे लोकप्रिय स्क्रिप्ट)। \n
सारा कोड शुद्ध Go में बिना किसी थर्ड-पार्टी लाइब्रेरी के लिखा जाएगा (सिर्फ स्टैंडर्ड लाइब्रेरी और HTTP क्लाइंट), ताकि आप समझ सकें कि सब कुछ "हुड के नीचे" कैसे काम करता है।
\n\nचरण 1: वातावरण तैयार करना
\n\nसुनिश्चित करें कि आपके पास Go (वर्जन 1.21+) इंस्टॉल है। इसे इस कमांड से चेक करें:
\n\ngo version\n\nप्रोजेक्ट के लिए एक नई डायरेक्टरी बनाएं और मॉड्यूल इनिशियलाइज़ करें:
\n\nmkdir go-chat-bot\ncd go-chat-bot\ngo mod init github.com/yourname/go-chat-bot\n\nआपको एक बॉट टोकन की आवश्यकता होगी। अगर आपके पास नहीं है:
\n- \n
- Telegram में @BotFather को लिखें। \n
/newbotकमांड भेजें और निर्देशों का पालन करें। \n - प्राप्त टोकन कॉपी करें (यह ऐसा दिखता है:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)। \n
टोकन को एनवायरनमेंट वेरिएबल में सेव करें (टोकन को कभी कोड में न रखें!):
\n\nexport BOT_TOKEN="आपका_टोकन_यहाँ"\n\nचरण 2: Go बॉट की बेसिक संरचना
\n\nmain.go फ़ाइल बनाएं। हम एक सरल HTTP सर्वर से शुरू करेंगे जो Telegram से अपडेट प्राप्त करेगा। Go इसके लिए बिल्ट-इन net/http पैकेज के कारण एकदम सही है।
package main\n\nimport (\n "encoding/json"\n "fmt"\n "io"\n "log"\n "net/http"\n "os"\n "strings"\n)\n\n// Update — Telegram से इनकमिंग अपडेट की संरचना\ntype Update struct {\n UpdateID int `json:"update_id"`\n Message struct {\n Text string `json:"text"`\n Chat struct {\n ID int64 `json:"id"`\n } `json:"chat"`\n } `json:"message"`\n}\n\nfunc main() {\n botToken := os.Getenv("BOT_TOKEN")\n if botToken == "" {\n log.Fatal("BOT_TOKEN सेट नहीं है")\n }\n\n http.HandleFunc("/webhook", func(w http.ResponseWriter, r *http.Request) {\n handleWebhook(w, r, botToken)\n })\n\n log.Println("बॉट :8080 पर शुरू हुआ")\n log.Fatal(http.ListenAndServe(":8080", nil))\n}\n\nfunc handleWebhook(w http.ResponseWriter, r *http.Request, token string) {\n body, err := io.ReadAll(r.Body)\n if err != nil {\n log.Printf("रिक्वेस्ट बॉडी पढ़ने में त्रुटि: %v", err)\n http.Error(w, "Bad Request", http.StatusBadRequest)\n return\n }\n defer r.Body.Close()\n\n var update Update\n if err := json.Unmarshal(body, &update); err != nil {\n log.Printf("JSON पार्स करने में त्रुटि: %v", err)\n http.Error(w, "Bad JSON", http.StatusBadRequest)\n return\n }\n\n // अगर संदेश खाली है — इग्नोर करें\n if update.Message.Text == "" {\n return\n }\n\n log.Printf("संदेश प्राप्त हुआ: %s", update.Message.Text)\n\n // जवाब तैयार करें\n var replyText string\n if strings.HasPrefix(update.Message.Text, "/start") {\n replyText = "नमस्ते! मैं Go में बना बॉट हूँ। लिखिए..."\n } else {\n replyText = strings.ToUpper(update.Message.Text)\n }\n\n // Telegram API को जवाब भेजें\n sendMessage(token, update.Message.Chat.ID, replyText)\n}\n\nfunc sendMessage(token string, chatID int64, text string) {\n url := fmt.Sprintf("https://api.telegram.org/bot%s/sendMessage", token)\n payload := fmt.Sprintf(`{"chat_id":%d,"text":"%s"}`, chatID, text)\n \n resp, err := http.Post(url, "application/json", strings.NewReader(payload))\n if err != nil {\n log.Printf("संदेश भेजने में त्रुटि: %v", err)\n return\n }\n defer resp.Body.Close()\n \n log.Printf("संदेश भेजा गया: %s", text)\n}\n\nयह कोड एक बेसिक बॉट बनाता है जो /start पर प्रतिक्रिया देता है और अन्य संदेशों को अपरकेस में बदल देता है। अब इसे चलाएं और Telegram में अपने बॉट का परीक्षण करें!