Seu primeiro chat-bot em C#: da ideia ao assistente funcional
\n\nVocê já quis criar seu próprio assistente inteligente? Não aquele que apenas responde "Olá", mas um bot de verdade que possa pedir pizza, lembrar de uma reunião ou moderar um chat. A boa notícia: você não precisa ser um guru de machine learning. Basta saber C# e ter algumas noites livres.
\n\nNeste artigo, vamos analisar como escrever um chat-bot em C# do zero. Nada de mágica — apenas código compreensível, arquitetura correta e dicas práticas. Você aprenderá como se conectar ao Telegram Bot API, processar comandos e construir diálogos. Vamos lá!
\n\nPor que C# é ideal para chat-bots?
\n\nMuitos pensam que bots são escritos apenas em Python ou JavaScript. Mas C# é uma ferramenta poderosa e subestimada para esta tarefa. Veja porquê:
\n\n- \n
- Tipagem forte — você detecta erros na compilação, não em produção. \n
- Async/await — o bot precisa processar milhares de requisições simultaneamente. C# lida com isso muito bem. \n
- Ecossistema .NET — bibliotecas prontas para Telegram, Discord, Slack e até protocolos próprios. \n
- Desempenho — .NET Core / .NET 8 é rápido e consome pouca memória. \n
Se você já programa em C#, está no meio do caminho para criar um chat-bot profissional. E se não, esta é uma ótima oportunidade para começar.
\n\nPlanejando a arquitetura: para o bot não quebrar no primeiro dia
\n\nAntes de escrever código, vamos pensar em como nosso chat-bot em C# será estruturado. Arquitetura ruim é a causa de 90% dos problemas. A boa notícia: para um bot simples, três componentes são suficientes:
\n\n- \n
- Cliente da API — comunica-se com o mensageiro (Telegram, VK, Discord). \n
- Manipulador de comandos — analisa as mensagens e decide o que fazer. \n
- Lógica — as funções em si: busca, cálculos, consultas ao banco de dados. \n
Usaremos o padrão Chain of Responsibility (cadeia de responsabilidade) para processar comandos. É flexível e fácil de estender. Adicionar um novo comando leva 5 minutos.
\n\nPreparação: o que instalar
\n\nPara trabalhar, precisaremos de:
\n- \n
- .NET SDK 8.0 ou superior — baixe do site oficial. \n
- Qualquer IDE: Visual Studio, Rider ou VS Code. \n
- Uma conta no Telegram (para testes). \n
Crie um novo projeto:
\ndotnet new console -n MyTelegramBot\ncd MyTelegramBot\ndotnet add package Telegram.Bot\n\nA biblioteca Telegram.Bot é a mais popular para C#. Ela cobre completamente a API do Telegram e é ativamente mantida.
\n\nObtendo o token do bot
\n\nEntre no Telegram, encontre @BotFather e execute o comando /newbot. Siga as instruções. No final, você receberá um token — uma string secreta no formato:
1234567890:ABCdefGHIjklmNOPqrstUVwxyz-1234567\n\nImportante: nunca publique o token publicamente. Use variáveis de ambiente ou arquivos de configuração.
\n\nEscrevendo o código: conectando-se ao Telegram
\n\nVamos começar com o mais simples — um bot que responde "Olá!" a qualquer mensagem.
\n\nusing Telegram.Bot;\nusing Telegram.Bot.Types;\nusing Telegram.Bot.Polling;\n\nvar botClient = new TelegramBotClient("SEU_TOKEN");\n\nusing var cts = new CancellationTokenSource();\n\nvar receiverOptions = new ReceiverOptions\n{\n AllowedUpdates = { } // 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 qualquer tecla para parar.");\nConsole.ReadKey