Bot do Telegram em C++: guia passo a passo para corajosos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que C++ para um bot do Telegram? Não é loucura

\n

Quando se fala em criar bots do Telegram, a primeira coisa que vem à mente são Python, Node.js ou Go. Eles são simples, têm milhares de bibliotecas prontas e comunidades enormes. Mas e se o seu projeto exigir desempenho máximo? Ou se você estiver escrevendo um parser de alta carga? Ou talvez você seja apenas fã de C++ e queira fazer tudo "no estilo hardcore"?

\n

Escrever um bot do Telegram em C++ é uma tarefa perfeitamente viável. Sim, não é o caminho mais popular, mas tem sérias vantagens: velocidade de execução, baixo consumo de memória e controle total sobre cada byte. Neste guia, percorreremos o caminho desde a instalação das bibliotecas até um bot pronto que responde a comandos e faz parsing de dados. Vamos lá!

\n\n

O que vamos precisar?

\n

Para o trabalho, precisaremos de:

\n
    \n
  • Compilador C++17/20 — g++ (Linux/macOS) ou MSVC (Windows).
  • \n
  • CMake — sistema de build (versão 3.10+).
  • \n
  • Biblioteca tgbot-cpp — o wrapper C++ mais popular para a Telegram Bot API.
  • \n
  • libcurl — para requisições HTTP (incluída no tgbot-cpp).
  • \n
  • nlohmann/json — para trabalhar com JSON (também incluída nas dependências).
  • \n
  • Token do bot — obtenha com o @BotFather no Telegram.
  • \n
\n

Todo o código será escrito no Linux (Ubuntu 22.04), mas pode ser facilmente adaptado para Windows via vcpkg ou Conan.

\n\n

Passo 1: Instalação das bibliotecas

\n

Primeiro, instalamos as dependências. No terminal, execute:

\n
sudo apt update\nsudo apt install git cmake g++ libcurl4-openssl-dev libssl-dev nlohmann-json3-dev
\n

Agora, clone e compile o tgbot-cpp:

\n
git clone https://github.com/reo7sp/tgbot-cpp.git\ncd tgbot-cpp\nmkdir build && cd build\ncmake ..\nmake -j4\nsudo make install
\n

Se tudo ocorrer bem, a biblioteca estará instalada no sistema. Você pode verificar com o comando ls /usr/local/include/tgbot/ — você verá os arquivos de cabeçalho.

\n\n

Passo 2: Estrutura do projeto e CMakeLists.txt

\n

Crie uma pasta para o projeto:

\n
mkdir my_telegram_bot && cd my_telegram_bot\ntouch main.cpp CMakeLists.txt
\n

No CMakeLists.txt, escreva a configuração de build:

\n
cmake_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

Observe: estamos conectando OpenSSL e libcurl — eles são necessários para criptografia e requisições HTTP.

\n\n

Passo 3: Escrevendo o núcleo do bot em C++

\n

Abra o main.cpp e escreva a estrutura mínima:

\n
#include <tgbot/tgbot.h>\n#include <iostream>\n\nint main() {\n    // Substitua pelo seu token\n    std::string token = "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz";\n\n    TgBot::Bot bot(token);\n\n    // Manipulador do comando /start\n    bot.getEvents().onCommand("start", [&bot](TgBot::Message::Ptr message) {\n        bot.getApi().sendMessage(message->chat->id, "Olá! Sou um bot em C++. Como posso ajudar?");\n    });\n\n    // Manipulador de qualquer mensagem de texto\n    bot.getEvents().onAnyMessage([&bot](TgBot::Message::Ptr message) {\n        if (message->text == "/start") return; // Ignora duplicatas\n        bot.getApi().sendMessage(message->chat->id, "Você escreveu: " + message->text);\n    });\n\n    try {\n        std::cout << "Bot iniciado. Aguardando mensagens..." << std::endl;\n        TgBot::TgLongPoll longPoll(bot);\n        while (true) {\n            longPoll.start();\n        }\n    } catch (TgBot::TgException& e) {\n        std::cerr << "Erro: " << e.what() << std::endl;\n    }\n\n                

Blogs

Book Recommendations