Wie erstelle ich einen Bot mit Python und telegram-bot-api? Komplette Anleitung
Einführung in Telegram-Bots
In der heutigen digitalen Welt sind Messenger aus dem Alltag nicht mehr wegzudenken – und Bots sind ein praktisches Werkzeug, um Aufgaben zu automatisieren, mit Nutzern zu kommunizieren oder sogar ein Geschäft aufzubauen. Wenn Sie schnell und unkompliziert Ihren eigenen Telegram-Bot entwickeln möchten, sind die Programmiersprache Python und die Bibliothek python-telegram-bot die ideale Wahl.
Schritt 1: Token von BotFather abrufen
Bevor Sie Code schreiben, müssen Sie Ihren Bot bei Telegram registrieren. Gehen Sie dazu wie folgt vor:
- Öffnen Sie Telegram und suchen Sie nach dem Benutzer @BotFather.
- Geben Sie den Befehl /start und anschließend /newbot ein.
- Wählen Sie einen Namen und einen eindeutigen Benutzernamen für Ihren Bot (z. B. MyFirstPythonBot).
- Nach der Registrierung erhalten Sie von BotFather einen API-Token. Kopieren Sie ihn – Sie werden ihn im Code benötigen.
Schritt 2: Benötigte Bibliotheken installieren
Für die Kommunikation mit der Telegram-API verwenden wir die Bibliothek python-telegram-bot. Installieren Sie sie mit pip:
pip install python-telegram-bot --upgrade
Schritt 3: Grundgerüst des Bots
Jetzt erstellen wir einen einfachen Bot, der auf den Befehl /start reagiert:
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("Hallo! Ich bin dein erster Bot in Python!")
if __name__ == '__main__':
app = ApplicationBuilder().token("DEIN_TOKEN_HIER").build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
Erklärung der wichtigsten Teile:
ApplicationBuilderundCommandHandlersind die grundlegenden Werkzeuge zur Verarbeitung von Befehlen.- Die Funktion
startreagiert auf den Befehl /start und sendet eine Textnachricht an den Benutzer. - Die Methode
run_polling()startet den Bot und prüft kontinuierlich auf neue Nachrichten.
Schritt 4: Benutzernachrichten verarbeiten
Fügen wir nun die Verarbeitung von normalen Textnachrichten hinzu:
from telegram.ext import MessageHandler, filters
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
received_text = update.message.text
await update.message.reply_text(f"Du hast geschrieben: {received_text}")
if __name__ == '__main__':
app = ApplicationBuilder().token("DEIN_TOKEN_HIER").build()
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling()
Jetzt antwortet der Bot auf jede Textnachricht, indem er den Text wiederholt.
Schritt 5: Buttons und interaktives Menü hinzufügen
Bots werden viel benutzerfreundlicher, wenn Sie Schaltflächen einbauen:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
async def menu(update: Update, context: ContextTypes.DEFAULT_TYPE):
keyboard = [
[InlineKeyboardButton("Button 1", callback_data='button1')],
[InlineKeyboardButton("Button 2", callback_data='button2')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await update.message.reply_text('Wähle eine Option:', reply_markup=reply_markup)
async def button_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
query = update.callback_query
await query.answer()
await query.edit_message_text(text=f"Du hast gedrückt: {query.data}")
if __name__ == '__main__':
from telegram.ext import CallbackQueryHandler
app = ApplicationBuilder().token("DEIN_TOKEN_HIER").build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("menu", menu))
app.add_handler(CallbackQueryHandler(button_handler))
app.add_handler