Pourquoi C# est un excellent choix pour un bot Telegram ?
\n\nSi vous pensiez jusqu'à présent que les bots Telegram s'écrivaient uniquement en Python ou JavaScript, préparez-vous à être surpris. C# avec son typage strict, son vaste écosystème et sa rapidité d'exécution est un véritable « poids lourd » pour la création de bots. Imaginez : vous écrivez le code une fois, et le bot fonctionne pendant des années sans panne, traitant des milliers de messages par seconde. Ça semble tentant, non ?
\n\nDans ce guide, nous allons créer un bot Telegram en C# de zéro. Vous apprendrez à enregistrer un bot auprès de BotFather, à connecter la bibliothèque Telegram.Bot et à écrire un code fonctionnel avec gestion des commandes. Pas de blabla — que de la pratique et des exemples concrets.
De quoi avons-nous besoin ?
\n\nAvant de commencer, assurez-vous d'avoir :
\n- \n
- .NET SDK (version 6.0 ou ultérieure) — à télécharger depuis le site officiel ; \n
- Visual Studio ou VS Code (n'importe quel IDE où vous êtes à l'aise) ; \n
- Un compte Telegram — indispensable ; \n
- 5 minutes de temps libre — C# fera le reste. \n
Prêt ? C'est parti !
\n\nÉtape 1. Obtenir le token du bot via BotFather
\n\nAvant d'écrire du code, il faut « créer » le bot lui-même. Ouvrez Telegram et cherchez @BotFather — c'est le principal « créateur de bots » sur Telegram.
\n\n- \n
- Envoyez la commande
/newbot. \n - Choisissez un nom pour le bot (par exemple, MyFirstCSharpBot). \n
- Choisissez un nom d'utilisateur (doit obligatoirement se terminer par bot, par exemple MyFirstCSharpBot). \n
- Obtenez le token — une longue chaîne de caractères comme
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. \n
Important : le token est la clé d'accès à votre bot. Ne le montrez à personne et ne le publiez pas dans le code ouvert. Il est préférable de le stocker dans appsettings.json ou dans des variables d'environnement.
Étape 2. Créer le projet et installer la bibliothèque
\n\nOuvrez le terminal et exécutez les commandes :
\n\ndotnet new console -n TelegramBotCSharp\ncd TelegramBotCSharp\ndotnet add package Telegram.Bot\n\nNous utilisons la bibliothèque Telegram.Bot — c'est la bibliothèque la plus populaire et la mieux maintenue pour travailler avec l'API Telegram en C#. Elle prend en charge tout le « sale boulot » : connexion au serveur, traitement des mises à jour, envoi de messages.
\n\nAprès l'installation, ouvrez le fichier Program.cs — c'est ici que nous allons écrire la magie.
Étape 3. Écrire le code de base du bot
\n\nCommençons par le plus simple : le bot répondra aux commandes /start et /help. Voici le code fonctionnel minimal :
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("VOTRE_TOKEN_ICI");\n\nusing var cts = new CancellationTokenSource();\n\nvar receiverOptions = new ReceiverOptions\n{\n AllowedUpdates = Array.Empty<UpdateType>() // 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 Entrée pour arrêter.");\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($"Message reçu '{messageText}' de {chatId}");\n\n if (messageText == "/start")\n {\n await botClient.SendTextMessageAsync(\n chatId: chatId,\n text: "