Bot Telegram en C# : créez-le de zéro en 30 minutes

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

Pourquoi C# est un excellent choix pour un bot Telegram ?

\n\n

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

Dans 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.

\n\n

De quoi avons-nous besoin ?

\n\n

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

Prêt ? C'est parti !

\n\n

Étape 1. Obtenir le token du bot via BotFather

\n\n

Avant 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
  1. Envoyez la commande /newbot.
  2. \n
  3. Choisissez un nom pour le bot (par exemple, MyFirstCSharpBot).
  4. \n
  5. Choisissez un nom d'utilisateur (doit obligatoirement se terminer par bot, par exemple MyFirstCSharpBot).
  6. \n
  7. Obtenez le token — une longue chaîne de caractères comme 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11.
  8. \n
\n\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.

\n\n

Étape 2. Créer le projet et installer la bibliothèque

\n\n

Ouvrez le terminal et exécutez les commandes :

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

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

Après l'installation, ouvrez le fichier Program.cs — c'est ici que nous allons écrire la magie.

\n\n

Étape 3. Écrire le code de base du bot

\n\n

Commençons par le plus simple : le bot répondra aux commandes /start et /help. Voici le code fonctionnel minimal :

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

Blogs

Book Recommendations