Votre premier chatbot en C# : de l'idée à l'assistant fonctionnel
\n\nAvez-vous déjà rêvé de créer votre propre assistant intelligent ? Pas un simple robot qui répond « Bonjour », mais un véritable assistant capable de commander une pizza, de vous rappeler un rendez-vous ou de modérer un chat. Bonne nouvelle : pas besoin d'être un expert en machine learning. Il suffit de connaître le C# et d'avoir quelques soirées de libres.
\n\nDans cet article, nous allons voir comment écrire un chatbot en C# de zéro. Pas de magie, seulement du code clair, une architecture solide et des conseils pratiques. Vous apprendrez à vous connecter à l'API Telegram Bot, à gérer les commandes et à construire des dialogues. C'est parti !
\n\nPourquoi C# est-il idéal pour les chatbots ?
\n\nBeaucoup pensent que les bots s'écrivent uniquement en Python ou JavaScript. Pourtant, C# est un outil puissant et sous-estimé pour cette tâche. Voici pourquoi :
\n\n- \n
- Typage fort — vous détectez les erreurs à la compilation, pas en production. \n
- Async/await — un bot doit gérer des milliers de requêtes simultanément. C# excelle dans ce domaine. \n
- Écosystème .NET — des bibliothèques prêtes à l'emploi pour Telegram, Discord, Slack et même des protocoles personnalisés. \n
- Performances — .NET Core / .NET 8 est rapide et consomme peu de mémoire. \n
Si vous codez déjà en C#, vous êtes à mi-chemin de la création d'un chatbot professionnel. Sinon, c'est une excellente occasion de commencer.
\n\nPlanifier l'architecture : pour que votre bot ne plante pas dès le premier jour
\n\nAvant d'écrire du code, réfléchissons à la structure de notre chatbot en C#. Une mauvaise architecture est la cause de 90 % des problèmes. Bonne nouvelle : pour un bot simple, trois composants suffisent :
\n\n- \n
- Client API — communique avec la messagerie (Telegram, VK, Discord). \n
- Gestionnaire de commandes — analyse les messages et décide de l'action à entreprendre. \n
- Logique métier — les fonctions elles-mêmes : recherche, calculs, requêtes à la base de données. \n
Nous utiliserons le modèle Chaîne de responsabilité (Chain of Responsibility) pour gérer les commandes. C'est flexible et facile à étendre. Ajouter une nouvelle commande ? 5 minutes chrono.
\n\nPréparation : ce qu'il faut installer
\n\nPour travailler, vous aurez besoin de :
\n- \n
- .NET SDK 8.0 ou supérieur — téléchargez-le depuis le site officiel. \n
- Un IDE : Visual Studio, Rider ou VS Code. \n
- Un compte Telegram (pour les tests). \n
Créez un nouveau projet :
\ndotnet new console -n MonBotTelegram\ncd MonBotTelegram\ndotnet add package Telegram.Bot\n\nLa bibliothèque Telegram.Bot est la plus populaire pour C#. Elle couvre intégralement l'API Telegram et est activement maintenue.
\n\nObtenir le token du bot
\n\nConnectez-vous à Telegram, recherchez @BotFather et exécutez la commande /newbot. Suivez les instructions. À la fin, vous recevrez un token — une chaîne secrète ressemblant à :
1234567890:ABCdefGHIjklmNOPqrstUVwxyz-1234567\n\nImportant : ne publiez jamais votre token publiquement. Utilisez des variables d'environnement ou des fichiers de configuration.
\n\nÉcrire le code : se connecter à Telegram
\n\nCommençons par le plus simple — un bot qui répond « Bonjour ! » à chaque message.
\n\nusing Telegram.Bot;\nusing Telegram.Bot.Types;\nusing Telegram.Bot.Polling;\n\nvar botClient = new TelegramBotClient("VOTRE_TOKEN");\n\nusing var cts = new CancellationTokenSource();\n\nvar receiverOptions = new ReceiverOptions\n{\n AllowedUpdates = { } // recevoir tous les types de mises à jour\n};\n\nbotClient.StartReceiving(\n updateHandler: HandleUpdateAsync,\n pollingErrorHandler: HandlePollingErrorAsync,\n receiverOptions: receiverOptions,\n cancellationToken: cts.Token\n);\n\nConsole.WriteLine("Bot démarré. Appuyez sur une touche pour arrêter.");\nConsole.ReadKey