Telegram-Bot in C#: Von Grund auf in 30 Minuten erstellen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Warum ist C# eine ausgezeichnete Wahl für einen Telegram-Bot?

\n\n

Wenn Sie bisher dachten, dass Telegram-Bots nur in Python oder JavaScript geschrieben werden, machen Sie sich auf eine Überraschung gefasst. C# mit seiner strengen Typisierung, riesigen Ökosystem und Geschwindigkeit ist ein echter "Schwergewichtler" für die Bot-Erstellung. Stellen Sie sich vor: Sie schreiben den Code einmal, und der Bot arbeitet jahrelang störungsfrei und verarbeitet Tausende von Nachrichten pro Sekunde. Klingt verlockend, oder?

\n\n

In dieser Anleitung erstellen wir einen Telegram-Bot in C# von Grund auf. Sie erfahren, wie Sie den Bot bei BotFather registrieren, die Bibliothek Telegram.Bot einbinden und funktionsfähigen Code mit Befehlsverarbeitung schreiben. Kein überflüssiges Wissen – nur Praxis und echte Beispiele.

\n\n

Was brauchen wir?

\n\n

Stellen Sie vor dem Start sicher, dass Sie Folgendes haben:

\n
    \n
  • .NET SDK (Version 6.0 oder neuer) – herunterladbar von der offiziellen Website;
  • \n
  • Visual Studio oder VS Code (jede IDE, in der Sie sich wohlfühlen);
  • \n
  • Ein Telegram-Konto – ohne geht es nicht;
  • \n
  • 5 Minuten freie Zeit – den Rest erledigt C#.
  • \n
\n\n

Bereit? Los geht's!

\n\n

Schritt 1. Bot-Token über BotFather erhalten

\n\n

Bevor wir Code schreiben, müssen wir den Bot selbst "erschaffen". Öffnen Sie Telegram und suchen Sie nach @BotFather – das ist der Haupt-"Bot-Ersteller" in Telegram.

\n\n
    \n
  1. Schreiben Sie den Befehl /newbot.
  2. \n
  3. Denken Sie sich einen Namen für den Bot aus (z.B. MyFirstCSharpBot).
  4. \n
  5. Denken Sie sich einen Benutzernamen aus (muss auf bot enden, z.B. MyFirstCSharpBot).
  6. \n
  7. Erhalten Sie den Token – eine lange Zeichenfolge wie 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11.
  8. \n
\n\n

Wichtig: Der Token ist der Zugangsschlüssel zu Ihrem Bot. Zeigen Sie ihn niemandem und veröffentlichen Sie ihn nicht im offenen Code. Bewahren Sie ihn am besten in appsettings.json oder Umgebungsvariablen auf.

\n\n

Schritt 2. Projekt erstellen und Bibliothek installieren

\n\n

Öffnen Sie das Terminal und führen Sie die Befehle aus:

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

Wir verwenden die Bibliothek Telegram.Bot – die beliebteste und am besten gewartete Bibliothek für die Arbeit mit der Telegram API in C#. Sie übernimmt die gesamte "Schmutzarbeit": Verbindung zum Server, Verarbeitung von Updates, Senden von Nachrichten.

\n\n

Nach der Installation öffnen Sie die Datei Program.cs – hier werden wir die Magie schreiben.

\n\n

Schritt 3. Grundlegenden Bot-Code schreiben

\n\n

Beginnen wir mit dem Einfachsten: Der Bot wird auf die Befehle /start und /help antworten. Hier ist der minimale funktionsfähige Code:

\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("IHR_TOKEN_HIER");\n\nusing var cts = new CancellationTokenSource();\n\nvar receiverOptions = new ReceiverOptions\n{\n    AllowedUpdates = Array.Empty<UpdateType>() // alle Update-Typen empfangen\n};\n\nbotClient.StartReceiving(\n    updateHandler: HandleUpdateAsync,\n    pollingErrorHandler: HandlePollingErrorAsync,\n    receiverOptions: receiverOptions,\n    cancellationToken: cts.Token\n);\n\nConsole.WriteLine("Bot gestartet! Drücken Sie Enter zum Beenden.");\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($"Nachricht '{messageText}' von {chatId} erhalten");\n\n    if (messageText == "/start")\n    {\n        await botClient.SendTextMessageAsync(\n            chatId: chatId,\n            text: "                

Blogs

Buchempfehlungen