Chatbots en C# : créez un assistant intelligent de zéro

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Votre premier chatbot en C# : de l'idée à l'assistant fonctionnel

\n\n

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

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

Pourquoi C# est-il idéal pour les chatbots ?

\n\n

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

Planifier l'architecture : pour que votre bot ne plante pas dès le premier jour

\n\n

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

Préparation : ce qu'il faut installer

\n\n

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

Créez un nouveau projet :

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

La bibliothèque Telegram.Bot est la plus populaire pour C#. Elle couvre intégralement l'API Telegram et est activement maintenue.

\n\n

Obtenir le token du bot

\n\n

Connectez-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 à :

\n
1234567890:ABCdefGHIjklmNOPqrstUVwxyz-1234567
\n\n

Important : 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\n

Commençons par le plus simple — un bot qui répond « Bonjour ! » à chaque message.

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

Blogs

Book Recommendations