Zum Hauptinhalt springen

Wie füge ich einen Inline-Button im Telegramm-Bot hinzu

Telegram ist einer der beliebtesten Messenger der Welt, und viele Menschen nutzen es, um mit Bots zu kommunizieren und zu arbeiten. Wenn Sie einen Bot im Telegramm besitzen und praktische und interaktive Funktionen hinzufügen möchten, können Inline-Buttons eine großartige Lösung sein.

Inline-Schaltflächen ermöglichen es Benutzern, mit dem Bot zu interagieren, ohne Textbefehle einzugeben. Sie sehen aus wie normale Schaltflächen, können aber in Textnachrichten platziert werden und verschiedene Aktionen oder Vorschläge vorschlagen. Die Verwendung von Inline-Schaltflächen vereinfacht und beschleunigt die Kommunikation mit dem Bot erheblich, kann aber auch bei verschiedenen Aufgaben helfen und dem Benutzer Fragen stellen.

Das Hinzufügen von Inline-Buttons zu Bot-Telegrammen kann ein ziemlich einfacher Prozess sein. Sie benötigen Kenntnisse über die Grundlagen der Bots-Telegramme und die Programmiersprache, in der Sie Ihren Bot schreiben. Sie können die Telegram Bot API verwenden, um Inline-Schaltflächen zu erstellen, die verschiedene Methoden für die Arbeit mit dem Bot anbieten, einschließlich des Erstellens und Sendens von Schaltflächen.

Inline-Schaltflächen können Benutzern Optionen zur Beantwortung von Fragen bieten und ihnen dabei helfen, Entscheidungen zu treffen. Sie können für Bestellungen, Zahlungen, Kontaktdaten anfordern und vieles mehr verwendet werden. Sie können auch interaktive Spiele oder Umfragen mit Inline-Schaltflächen erstellen, an denen Benutzer teilnehmen und sofort Ergebnisse erhalten können.

Erstellen von Schaltflächen im Telegramm-Bot

Um eine Inline-Schaltfläche zu erstellen, müssen Sie spezielle Tags und Parameter im Botcode verwenden. Hier ist ein Beispielcode, mit dem Sie eine Schaltfläche erstellen können:

  • Importieren Sie die erforderlichen Module:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
  • Erstellen Sie eine Schaltfläche und binden Sie eine Funktion daran:
button = InlineKeyboardButton("Название кнопки", callback_data="название_функции")
  • Erstellen Sie eine Tastatur und fügen Sie eine Schaltfläche hinzu:
keyboard = [[button]]reply_markup = InlineKeyboardMarkup(keyboard)
  • Senden Sie eine Nachricht mit der Tastatur mithilfe der Bot-Methode.send_message(chat_id=chat_id, text="Nachrichtentext", reply_markup=reply_markup) :
bot.send_message(chat_id=chat_id, text="Текст сообщения", reply_markup=reply_markup)

Bei richtiger Implementierung sollte die Schaltfläche in der Botnachricht angezeigt werden. Der Benutzer kann auf eine Schaltfläche klicken und der Bot erhält bestimmte Daten, die für die spätere Verarbeitung verwendet werden können.

Das Erstellen von Schaltflächen im Bot-Telegramm mit Hilfe der Inline-Tastatur ermöglicht somit eine bessere Benutzerinteraktion und eine flexiblere Funktion des Bot.

Verwenden der Inline-Tastatur

Um eine Schaltfläche Inline zu einer Nachricht hinzuzufügen, müssen Sie das spezielle JSON-Format verwenden, das zusammen mit der Nachricht gesendet wird. Für jede Schaltfläche wird der Text angegeben, der auf der Schaltfläche angezeigt wird, und Callback data - die Daten, die beim Klicken auf die Schaltfläche an den Bot gesendet werden.

Beispiel für die Verwendung von inline keyboard:

    Fügen Sie dem Nachrichtenobjekt eine Inline-Tastatureinstellung hinzu:

bot.sendMessage(chat_id, message_text);
bot.on('callback_query', function (callbackQuery) );

Mit der Inline-Tastatur können Sie die Interaktion mit dem Benutzer im Telegrammbot erheblich vereinfachen, indem Sie ihm bequeme Antworten oder Aktionen anbieten.

Hinzufügen einer Schaltfläche zu einer Nachricht

Um eine Inline-Schaltfläche zu einer Nachricht hinzuzufügen, müssen Sie einen speziell formatierten Text verwenden, der Informationen über die Schaltfläche enthält, z. B. den Text der Schaltfläche und die Daten, die beim Klicken auf die Schaltfläche an den Bot gesendet werden.

Beispiel für die Verwendung einer Inline-Schaltfläche in einer Nachricht:

import telebotbot = telebot.TeleBot('TOKEN')@bot.message_handler(commands=['start'])def start_message(message):keyboard = telebot.types.InlineKeyboardMarkup() # создание объекта клавиатурыbutton = telebot.types.InlineKeyboardButton(text='Нажми меня', callback_data='press') # создание кнопкиkeyboard.add(button) # добавление кнопки на клавиатуруbot.send_message(message.chat.id, 'Привет, нажми кнопку!', reply_markup=keyboard) # отправка сообщения с клавиатурой@bot.callback_query_handler(func=lambda call: True)def callback_worker(call):if call.data == 'press': # обработка нажатия на кнопкуbot.send_message(call.message.chat.id, 'Кнопка нажата!')bot.polling(none_stop=True, interval=0)

In diesem Beispiel erstellt der Bot eine Tastatur mit einer Taste und sendet sie an den Benutzer mit dem Befehl /start. Wenn der Benutzer auf eine Schaltfläche klickt, sendet der Bot eine Nachricht mit dem Text "Taste gedrückt!".

Inline-Schaltflächen können wie im obigen Beispiel überall in einer Nachricht mit HTML-Tags oder speziellen pyTelegramBotAPI-Bibliotheksmethoden hinzugefügt werden.

Anpassen des Aussehens einer Schaltfläche

Telegram hat Einschränkungen für die Inline-Gestaltung von Schaltflächen, aber Sie können kleine Änderungen an ihrem Aussehen vornehmen.

1. Schaltflächentext: Wenn Sie den Text auf der Schaltfläche ändern möchten, können Sie die HTML-Formatierung verwenden. Zum Beispiel:

  • Fetthaltiger Text - wendet die Fettformatierung auf den Text der Schaltfläche an
  • Kursiver Text - wendet die Kursivformatierung auf den Text der Schaltfläche an
  • Моноширинный текст - wendet eine Mono-Breite Formatierung auf den Text der Schaltfläche an
  • Link - Verwandelt den Text in einen Link

2. Farbe der Schaltfläche: Mit Telegram können Sie nur eine Handvoll voreingestellter Farben für Schaltflächen verwenden. Sie können eine dieser Farben wählen:

  • default
  • primary
  • secondary
  • success
  • danger
  • warning
  • info

Um die Farbe der Schaltfläche zu ändern, müssen Sie dem Tag "a" eine entsprechende Klasse hinzufügen. Zum Beispiel:

3. Knopfgröße: Telegram bietet auch mehrere Größen für Schaltflächen:

Um die Größe der Schaltfläche zu ändern, fügen Sie einfach die entsprechende Klasse zum Tag "a" hinzu. Zum Beispiel:

Sie können diese Optionen kombinieren, um das gewünschte Aussehen der Schaltfläche zu erhalten. Vergessen Sie nicht zu überprüfen, wie die Schaltfläche in der Telegram-Anwendung aussieht, bevor Sie sie an Benutzer senden.

Umgang mit einem Tastendruck

Nachdem der Benutzer auf die Inline-Schaltfläche geklickt hat, muss der Bot diesen Klick verarbeiten und die entsprechende Aktion ausführen. Dazu können verschiedene Ansätze verwendet werden.

  • Eine der einfachsten Methoden besteht darin, bedingte Anweisungen zu verwenden, um die Aktion zu definieren, die abhängig von der gedrückten Schaltfläche ausgeführt werden soll. Zum Beispiel:
    • Wenn der Benutzer auf die Schaltfläche "Starten" geklickt hat, kann der Bot eine Willkommensnachricht senden und den Benutzer auffordern, eine bestimmte Funktion auszuwählen.
    • Wenn der Benutzer auf die Schaltfläche "Informationen abrufen" geklickt hat, kann der Bot Informationen über etwas Interessantes oder Nützliches senden.
    • Wenn der Benutzer auf die Schaltfläche "Bestellung aufgeben" geklickt hat, kann der Bot ein Formular einreichen, um die Daten auszufüllen.
    • Der Benutzer klickt auf die Schaltfläche "Informationen abrufen" und der Bot ruft den Handler auf, der die Informationen sendet.
    • Der Benutzer klickt auf die Schaltfläche "Bestellung aufgeben" und der Bot ruft den Handler auf, der das Bestellformular sendet.

    Die Art und Weise, wie der Knopfdruck verarbeitet wird, hängt von der spezifischen Aufgabe ab, die Sie ausführen möchten, und von den Entwicklungsmerkmalen des Bot-Telegramms.

    Datenübertragung beim Drücken einer Taste

    Sie müssen den callback_data-Parameter in der InlineKeyboardButton-Methode verwenden, um beim Klicken auf eine Schaltfläche Daten zu übergeben. Der Wert dieses Parameters wird an den Bot gesendet, wenn Sie auf die Schaltfläche klicken.

    InlineKeyboardButton(text="Кнопка", callback_data="некоторые_данные")

    Wenn Sie in diesem Beispiel auf eine Schaltfläche mit dem Text "Schaltfläche" klicken, wird dem Bot der Wert "einige Daten" übergeben. Sie können diesen Wert verwenden, um die gewünschten Aktionen auszuführen, z. B. um zusätzliche Informationen von einem Benutzer zu erhalten oder um einen bestimmten Befehl aufzurufen.

    Sie müssen die callback_query_handler-Methode im Python-telegram-bot-Modul verwenden, um die vom Benutzer übermittelten Daten zu verarbeiten. Mit dieser Methode können Sie die übergebenen Daten abrufen und die gewünschten Aktionen basierend auf den empfangenen Informationen ausführen.

    @bot.callback_query_handler(func=lambda call: True)def handle_callback_query(call):if call.data == "некоторые_данные":# выполнить нужные действияpass

    In diesem Beispiel wird die Funktion handle_callback_query aufgerufen, wenn Daten vom Benutzer abgerufen werden. Wenn der Wert der empfangenen Daten auf "einige Daten" festgelegt ist, werden die gewünschten Aktionen ausgeführt.

    Durch die Verwendung der übertragenen Daten auf Knopfdruck können Bots genauere Anweisungen vom Benutzer erhalten und die Informationen flexibler verarbeiten. Diese Funktionalität kann beispielsweise zum Erstellen von Formularen, Umfragen oder Befehlen mit zusätzlichen Parametern nützlich sein.

    Anzeige der Schaltfläche im Inline-Modus

    Im Inline-Modus können Sie eine Schaltfläche direkt in einer Textnachricht anzeigen. Dies ist sehr praktisch, da der Benutzer mit der Schaltfläche interagieren kann, ohne zu anderen Fenstern oder Kommunikationsmitteln zu wechseln.

    Um den Inline-Button zum Bot-Telegramm hinzuzufügen, müssen Sie die Methode verwenden InlineKeyboardMarkup. Mit dieser Methode können Sie eine Inline-Tastatur mit einer oder mehreren Tasten erstellen.

    Beispielcode zum Hinzufügen einer Inline-Schaltfläche:

    MethodeDie Beschreibung
    InlineKeyboardMarkupErstellt eine Inline-Tastatur
    InlineKeyboardButtonErstellt eine Schaltfläche innerhalb der Inline-Tastatur
    from telegram import InlineKeyboardButton, InlineKeyboardMarkup# Создаем кнопкуbutton = InlineKeyboardButton('Название кнопки', callback_data='data')# Создаем клавиатуруkeyboard = InlineKeyboardMarkup([[button]])# Отправляем сообщение с кнопкойbot.send_message(chat_id=chat_id, text='Текст сообщения', reply_markup=keyboard)

    Wenn Sie diesen Code verwenden, wird der Nachrichtentext mit der Schaltfläche "Schaltflächenname" auf dem Bildschirm des Benutzers angezeigt. Wenn Sie auf die Schaltfläche klicken, sendet Telegram eine Callback-Anfrage mit den angegebenen Daten ('data') an den Bot, wodurch der Bot bestimmte Aktionen ausführen kann.

    Verbinden mit dem Bot und Testen der Schaltfläche

    Nachdem Sie eine Inline-Schaltfläche für Ihren Telegramm-Bot erstellt haben, müssen Sie sie anschließen und die Funktionalität testen.

    Installieren Sie zunächst die Python-telegram-bot-Bibliothek mit dem Befehl:

    pip install python-telegram-bot

    Importieren Sie dann die erforderlichen Klassen und Funktionen:

    from telegram import InlineKeyboardButton, InlineKeyboardMarkup

    from telegram.ext import Updater, CallbackQueryHandler

    Und erstellen Sie eine Funktion, um den Knopfdruck zu behandeln:

    def button(update, context):

    # wir erhalten die Daten über die gedrückte Taste

    # senden Sie eine Nachricht an den Benutzer mit dem Text

    query.edit_message_text(text="Sie haben auf den Button geklickt!")

    Erstellen Sie als Nächstes eine Instanz des Bot und erhalten Sie dessen Token:

    Und registrieren Sie den Knopfdruckhandler:

    Um nun die Funktion der Schaltfläche zu testen, schreiben Sie Ihrem Bot in ein Telegramm und suchen Sie nach der hinzugefügten Schaltfläche. Nachdem Sie auf die Schaltfläche geklickt haben, sollte der Bot Ihnen mit der Nachricht antworten: "Sie haben auf die Schaltfläche geklickt!"

    Glückwunsch! Jetzt wissen Sie, wie Sie die Inline-Taste im Telegramm-Bot anschließen und testen können.