Telegram-Bot in Go: Von der Idee zum Deployment in 30 Minuten

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 Go die ideale Sprache für Telegram-Bots ist

Wenn Sie jemals Bots in Python geschrieben haben, wissen Sie: Alles funktioniert, bis man an die Leistungsgrenzen stößt. Go löst dieses Problem auf Architekturebene. Es ist schnell, leichtgewichtig und benötigt keine virtuelle Umgebung. Ein Telegram-Bot in Go ist kein Spielzeug, sondern ein vollwertiger Dienst, der Tausende von Anfragen pro Sekunde bewältigt und dabei nur wenig Speicher verbraucht.

In diesem Artikel erstellen wir von Grund auf einen Bot in Golang, der auf Befehle reagiert, Nachrichten verarbeitet und sogar mit einer externen API arbeitet. Ohne überflüssige Theorie – nur Code, den Sie sofort ausführen können.



Schritt 1: Umgebungsvorbereitung

Bevor Sie einen Telegram-Bot in Go schreiben, stellen Sie sicher, dass Go Version 1.20 oder höher installiert ist. Überprüfen können Sie dies mit dem Befehl:

go version

Wenn Go nicht installiert ist, laden Sie es von der offiziellen Website herunter. Die Installation dauert 2 Minuten.

Außerdem benötigen Sie einen Bot-Token. Gehen Sie in Telegram, suchen Sie nach BotFather und führen Sie den Befehl aus:

/newbot

Geben Sie den Namen und den Username des Bots ein. Nach der Erstellung sendet BotFather einen Token – bewahren Sie ihn auf, er wird für die Verbindung zur Telegram Bot API benötigt.



Schritt 2: Projektstruktur

Erstellen Sie einen Projektordner und initialisieren Sie das Modul:

mkdir my-telegram-botcd my-telegram-botgo mod init my-telegram-bot

Für die Arbeit mit Telegram verwenden wir die Bibliothek tgbotapi – die beliebteste Go-Bibliothek für Telegram. Installieren Sie sie:

go get github.com/go-telegram-bot-api/telegram-bot-api/v5

Erstellen Sie nun die Datei main.go. Die grundlegende Struktur sieht wie folgt aus:

package main

import ( "log" "os" tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5")

func main() { token := os.Getenv("TELEGRAM_BOT_TOKEN") bot, err := tgbotapi.NewBotAPI(token) if err != nil { log.Panic(err) }

bot.Debug = true log.Printf("Bot @%s gestartet", bot.Self.UserName)

u := tgbotapi.NewUpdate(0) u.Timeout = 60

updates := bot.GetUpdatesChan(u)

for update := range updates { if update.Message != nil { log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text) msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Hallo! Ich arbeite mit Go!") bot.Send(msg) } }}

Starten Sie den Bot:

export TELEGRAM_BOT_TOKEN="ihr_token"go run main.go

Schreiben Sie dem Bot in Telegram – er sollte antworten. Wenn alles funktioniert, fahren Sie mit dem nächsten Schritt fort.



Schritt 3: Befehlsverarbeitung

Einfach nur "Hallo" zu antworten, ist langweilig. Fügen wir eine Befehlsverarbeitung für den Telegram-Bot hinzu. Implementieren wir die Befehle /start und /help:

for update := range updates {    if update.Message != nil {        switch update.Message.Command() {        case "start":            msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Willkommen! Ich bin ein Bot in Go. Verwende /help für eine Liste der Befehle.")            bot.Send(msg)        case "help":            msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Verfügbare Befehle:/start - Begrüßung/help - Hilfe/echo - Nachricht wiederholen")            bot.Send(msg)        default:            msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Unbekannter Befehl. Verwende /help")            bot.Send(msg)        }    }}

Jetzt reagiert der Bot auf Befehle. Aber das ist erst der Anfang. Die wahre Stärke eines Golang Telegram-Bots liegt in der Leistungsfähigkeit bei hoher Last.



Schritt 4: Arbeit mit einer externen API

Fügen wir eine nützliche Funkti

Blogs

Buchempfehlungen