Python-Bot mit telegram-bot-api erstellen: Anleitung

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

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:

  1. Öffnen Sie Telegram und suchen Sie nach dem Benutzer @BotFather.
  2. Geben Sie den Befehl /start und anschließend /newbot ein.
  3. Wählen Sie einen Namen und einen eindeutigen Benutzernamen für Ihren Bot (z. B. MyFirstPythonBot).
  4. 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:

  • ApplicationBuilder und CommandHandler sind die grundlegenden Werkzeuge zur Verarbeitung von Befehlen.
  • Die Funktion start reagiert 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                

Blogs

Buchempfehlungen