Por que C# é uma excelente escolha para um bot do Telegram?
\n\nSe você ainda pensava que bots do Telegram são escritos apenas em Python ou JavaScript, prepare-se para se surpreender. C# com sua tipagem forte, enorme ecossistema e velocidade de execução é um verdadeiro "peso-pesado" para criar bots. Imagine: você escreve o código uma vez, e o bot funciona por anos sem falhas, processando milhares de mensagens por segundo. Parece tentador, não é?
\n\nNeste guia, criaremos um bot do Telegram em C# do zero. Você aprenderá como registrar o bot no BotFather, conectar a biblioteca Telegram.Bot e escrever um código funcional com tratamento de comandos. Sem enrolação — apenas prática e exemplos reais.
O que vamos precisar?
\n\nAntes de começar, certifique-se de que você tem:
\n- \n
- .NET SDK (versão 6.0 ou superior) — pode baixar do site oficial; \n
- Visual Studio ou VS Code (qualquer IDE onde você se sinta confortável); \n
- Conta no Telegram — sem ela não dá; \n
- 5 minutos de tempo livre — o resto o C# faz. \n
Pronto? Vamos lá!
\n\nPasso 1. Obtendo o token do bot através do BotFather
\n\nAntes de escrever código, precisamos "criar" o bot. Abra o Telegram e encontre @BotFather — ele é o principal "criador de bots" no Telegram.
\n\n- \n
- Digite o comando
/newbot. \n - Escolha um nome para o bot (por exemplo, MyFirstCSharpBot). \n
- Escolha um username (obrigatoriamente terminando em bot, por exemplo MyFirstCSharpBot). \n
- Receba o token — uma longa string no formato
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. \n
Importante: o token é a chave de acesso ao seu bot. Não mostre a ninguém e não publique em código aberto. O melhor é armazená-lo em appsettings.json ou em variáveis de ambiente.
Passo 2. Criando o projeto e instalando a biblioteca
\n\nAbra o terminal e execute os comandos:
\n\ndotnet new console -n TelegramBotCSharp\ncd TelegramBotCSharp\ndotnet add package Telegram.Bot\n\nEstamos usando a biblioteca Telegram.Bot — a mais popular e suportada para trabalhar com a API do Telegram em C#. Ela cuida de todo o "trabalho pesado": conexão com o servidor, processamento de atualizações, envio de mensagens.
\n\nApós a instalação, abra o arquivo Program.cs — é aqui que escreveremos a mágica.
Passo 3. Escrevendo o código básico do bot
\n\nVamos começar com o mais simples: o bot responderá aos comandos /start e /help. Aqui está o código funcional mínimo:
using Telegram.Bot;\nusing Telegram.Bot.Exceptions;\nusing Telegram.Bot.Polling;\nusing Telegram.Bot.Types;\nusing Telegram.Bot.Types.Enums;\n\nvar botClient = new TelegramBotClient("SEU_TOKEN_AQUI");\n\nusing var cts = new CancellationTokenSource();\n\nvar receiverOptions = new ReceiverOptions\n{\n AllowedUpdates = Array.Empty<UpdateType>() // recebemos todos os tipos de atualizações\n};\n\nbotClient.StartReceiving(\n updateHandler: HandleUpdateAsync,\n pollingErrorHandler: HandlePollingErrorAsync,\n receiverOptions: receiverOptions,\n cancellationToken: cts.Token\n);\n\nConsole.WriteLine("Bot iniciado! Pressione Enter para parar.");\nConsole.ReadLine();\ncts.Cancel();\n\nasync Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)\n{\n if (update.Message is not { } message)\n return;\n if (message.Text is not { } messageText)\n return;\n\n var chatId = message.Chat.Id;\n Console.WriteLine($"Mensagem recebida '{messageText}' de {chatId}");\n\n if (messageText == "/start")\n {\n await botClient.SendTextMessageAsync(\n chatId: chatId,\n text: "