Chat-bots em C#: escrevendo um assistente inteligente do zero

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

Seu primeiro chat-bot em C#: da ideia ao assistente funcional

\n\n

Você 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\n

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

Por que C# é ideal para chat-bots?

\n\n

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

Planejando a arquitetura: para o bot não quebrar no primeiro dia

\n\n

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

Preparação: o que instalar

\n\n

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

Crie um novo projeto:

\n
dotnet new console -n MyTelegramBot\ncd MyTelegramBot\ndotnet add package Telegram.Bot
\n\n

A biblioteca Telegram.Bot é a mais popular para C#. Ela cobre completamente a API do Telegram e é ativamente mantida.

\n\n

Obtendo o token do bot

\n\n

Entre no Telegram, encontre @BotFather e execute o comando /newbot. Siga as instruções. No final, você receberá um token — uma string secreta no formato:

\n
1234567890:ABCdefGHIjklmNOPqrstUVwxyz-1234567
\n\n

Importante: nunca publique o token publicamente. Use variáveis de ambiente ou arquivos de configuração.

\n\n

Escrevendo o código: conectando-se ao Telegram

\n\n

Vamos começar com o mais simples — um bot que responde "Olá!" a qualquer mensagem.

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

Blogs

Book Recommendations