C++ में Telegram बॉट क्यों? यह पागलपन नहीं है
\nजब Telegram बॉट बनाने की बात आती है, तो सबसे पहले Python, Node.js या Go का ख्याल आता है। वे सरल हैं, उनके पास हजारों तैयार लाइब्रेरी और बड़े समुदाय हैं। लेकिन क्या होगा अगर आपके प्रोजेक्ट को अधिकतम प्रदर्शन की आवश्यकता है? या आप एक उच्च-लोड पार्सर लिख रहे हैं? या हो सकता है कि आप सिर्फ C++ के प्रशंसक हों और सब कुछ "हार्डकोर" तरीके से करना चाहते हों?
\nC++ पर Telegram बॉट लिखना पूरी तरह से संभव कार्य है। हाँ, यह सबसे लोकप्रिय रास्ता नहीं है, लेकिन इसके गंभीर फायदे हैं: गति, कम मेमोरी खपत और हर बाइट पर पूर्ण नियंत्रण। इस गाइड में, हम लाइब्रेरी स्थापित करने से लेकर एक तैयार बॉट तक का सफर तय करेंगे जो कमांड का जवाब देता है और डेटा पार्स करता है। चलिए शुरू करते हैं!
\n\nहमें क्या चाहिए?
\nकाम करने के लिए हमें आवश्यकता होगी:
\n- \n
- C++17/20 कंपाइलर — g++ (Linux/macOS) या MSVC (Windows)। \n
- CMake — बिल्ड सिस्टम (संस्करण 3.10+)। \n
- tgbot-cpp लाइब्रेरी — Telegram Bot API के लिए सबसे लोकप्रिय C++ रैपर। \n
- libcurl — HTTP अनुरोधों के लिए (tgbot-cpp के साथ आता है)। \n
- nlohmann/json — JSON के साथ काम करने के लिए (निर्भरता में शामिल)। \n
- बॉट टोकन — इसे Telegram में @BotFather से प्राप्त करें। \n
हम सारा कोड Linux (Ubuntu 22.04) पर लिखेंगे, लेकिन इसे vcpkg या Conan के माध्यम से Windows पर आसानी से अनुकूलित किया जा सकता है।
\n\nचरण 1: लाइब्रेरी स्थापित करना
\nपहले निर्भरताएँ स्थापित करें। टर्मिनल में निष्पादित करें:
\nsudo apt update\nsudo apt install git cmake g++ libcurl4-openssl-dev libssl-dev nlohmann-json3-dev\nअब tgbot-cpp को क्लोन और बिल्ड करें:
\ngit clone https://github.com/reo7sp/tgbot-cpp.git\ncd tgbot-cpp\nmkdir build && cd build\ncmake ..\nmake -j4\nsudo make install\nयदि सब कुछ सफल रहा, तो लाइब्रेरी सिस्टम में स्थापित हो गई है। इसे कमांड ls /usr/local/include/tgbot/ से जांचा जा सकता है — आपको हेडर फाइलें दिखाई देंगी।
चरण 2: प्रोजेक्ट संरचना और CMakeLists.txt
\nप्रोजेक्ट के लिए एक फोल्डर बनाएँ:
\nmkdir my_telegram_bot && cd my_telegram_bot\ntouch main.cpp CMakeLists.txt\nCMakeLists.txt में बिल्ड कॉन्फ़िगरेशन लिखें:
\ncmake_minimum_required(VERSION 3.10)\nproject(MyTelegramBot)\n\nset(CMAKE_CXX_STANDARD 17)\n\nfind_package(TgBot REQUIRED)\nfind_package(OpenSSL REQUIRED)\nfind_package(CURL REQUIRED)\n\nadd_executable(my_bot main.cpp)\ntarget_link_libraries(my_bot TgBot::TgBot OpenSSL::SSL OpenSSL::Crypto CURL::libcurl)\nध्यान दें: हम OpenSSL और libcurl को जोड़ रहे हैं — ये एन्क्रिप्शन और HTTP अनुरोधों के लिए आवश्यक हैं।
\n\nचरण 3: C++ में बॉट का कोर लिखना
\nmain.cpp खोलें और न्यूनतम संरचना लिखें:
\n#include <tgbot/tgbot.h>\n#include <iostream>\n\nint main() {\n // अपने टोकन से बदलें\n std::string token = "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz";\n\n TgBot::Bot bot(token);\n\n // /start कमांड हैंडलर\n bot.getEvents().onCommand("start", [&bot](TgBot::Message::Ptr message) {\n bot.getApi().sendMessage(message->chat->id, "नमस्ते! मैं C++ पर एक बॉट हूँ। मैं कैसे मदद कर सकता हूँ?");\n });\n\n // किसी भी टेक्स्ट संदेश का हैंडलर\n bot.getEvents().onAnyMessage([&bot](TgBot::Message::Ptr message) {\n if (message->text == "/start") return; // डुप्लिकेट को अनदेखा करें\n bot.getApi().sendMessage(message->chat->id, "आपने लिखा: " + message->text);\n });\n\n try {\n std::cout << "बॉट शुरू हो गया है। संदेशों की प्रतीक्षा कर रहा है..." << std::endl;\n TgBot::TgLongPoll longPoll(bot);\n while (true) {\n longPoll.start();\n }\n } catch (TgBot::TgException& e) {\n std::cerr << "त्रुटि: " << e.what() << std::endl;\n }\n\n