aiogram ist eine leistungsstarke Bibliothek zum Erstellen von Telegram-Bots in Python. Eines der wichtigsten Merkmale von Aiogram ist die Möglichkeit, Inline-Schaltflächen zu erstellen und zu verwenden, mit denen Sie den Bot direkt im Chat steuern können, ohne auf die Eingabe von Textbefehlen zurückgreifen zu müssen.
Um eine Inline-Schaltfläche zu erstellen, muss der Entwickler den Text der Schaltfläche und callback_data definieren - einen eindeutigen Wert, der beim Klicken auf die Schaltfläche an den Bot übergeben wird. Callback_data kann alle Informationen enthalten, die zum Verarbeiten eines Klickens erforderlich sind.
Darüber hinaus bietet Aiogram umfangreiche Optionen zum Anpassen des Aussehens von Inline-Schaltflächen. Der Entwickler kann die Farbe und Größe der Schaltfläche ändern und Symbole oder Texthinweise hinzufügen. Dadurch können Benutzer einfach und schnell mit dem Bot interagieren, indem sie die benötigten Informationen erhalten oder die gewünschten Aktionen mit einem einzigen Tastendruck ausführen.
Erstellen von Inline-Aiogram-Schaltflächen
Verwenden Sie die InlineKeyboardButton-Klasse, um Inline-Schaltflächen in aiogram zu erstellen. Schaltflächen werden mit der from_callback_data-Methode erstellt, um die Aktion zu definieren, die beim Klicken auf die Schaltfläche ausgeführt wird. Die from_callback_data-Methode akzeptiert den Namen der Wurst und die Daten, die an die Wurst übergeben werden sollen. Zum Beispiel:
button = InlineKeyboardButton.from_callback_data('Нажми меня', 'callback_data')
Die erstellte Schaltfläche wird dann der Liste der Tastaturtasten hinzugefügt, die an den Benutzer gesendet werden. Zum Beispiel:
keyboard = InlineKeyboardMarkup(row_width=1)keyboard.add(button)
In diesem Beispiel wird eine Tastatur mit einer Taste erstellt, die als Antwort an den Benutzer gesendet wird.
Eine Tastatur mit mehreren Tasten kann erstellt werden, indem Schaltflächen zu verschiedenen Zeilen und Spalten hinzugefügt werden. Zum Beispiel:
button1 = InlineKeyboardButton.from_callback_data('Кнопка 1', 'callback_data_1')button2 = InlineKeyboardButton.from_callback_data('Кнопка 2', 'callback_data_2')button3 = InlineKeyboardButton.from_callback_data('Кнопка 3', 'callback_data_3')keyboard = InlineKeyboardMarkup(row_width=2)keyboard.add(button1, button2)keyboard.add(button3)
In diesem Beispiel wird eine Tastatur mit drei Schaltflächen in zwei Zeilen erstellt. Die ersten beiden Tasten werden in der ersten Zeile platziert und die dritte in der zweiten Zeile.
Wenn der Benutzer auf eine Schaltfläche klickt, werden die bei der Erstellung der Schaltfläche angegebenen Wurstparameter gesendet. Ihre Anwendung kann diese Parameter abrufen und die entsprechenden Schritte als Antwort ausführen. Die Schaltflächen ermöglichen die Interaktion mit dem Benutzer und bieten eine Möglichkeit, Aktionen innerhalb des Bots durchzuführen.
Das Erstellen von Inline-Aiogram-Schaltflächen kann für bestimmte Funktionen Ihres Bots sehr nützlich sein und kann dazu beitragen, dass es für die Benutzer benutzerfreundlicher und intuitiver wird.
Leitfaden für Entwickler
Um Inline-Schaltflächen in aiogram zu erstellen, müssen Sie Klassenobjekte verwenden InlineKeyboardMarkup und InlineKeyboardButton. Die erste Klasse ist für die Erstellung des Schaltflächenblocks verantwortlich und die zweite ist für die Erstellung der Schaltfläche selbst verantwortlich. Für jede Schaltfläche müssen Sie den Text und die callback_data angeben, die beim Klicken auf die Schaltfläche übergeben werden sollen.
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup# Создание объектов кнопокbutton1 = InlineKeyboardButton("Кнопка 1", callback_data="button1")button2 = InlineKeyboardButton("Кнопка 2", callback_data="button2")button3 = InlineKeyboardButton("Кнопка 3", callback_data="button3")# Создание объекта клавиатуры и добавление кнопокkeyboard = InlineKeyboardMarkup().add(button1).add(button2).add(button3)
Nachdem Sie ein Tastaturobjekt mit Schaltflächen erstellt haben, kann es beim Senden einer Nachricht an den Benutzer verwendet werden:
await bot.send_message(chat_id, "Выберите одну из кнопок:", reply_markup=keyboard)
Wenn Sie auf die Schaltfläche klicken, wird callback_data an Ihren Bot zurückgegeben und Sie werden in der Lage sein, es in einem Handler zu verarbeiten, indem Sie CallbackQueryHandler:
@dp.callback_query_handler(lambda query: query.data == 'button1')async def button1_handler(query: types.CallbackQuery):await query.answer("Вы нажали на кнопку 1")
Daher ist das Erstellen von Inline-Buttons mit Aiogram eine einfache und flexible Möglichkeit, die Interaktion Ihres Telegrammbots mit Benutzern zu verbessern. Vergessen Sie nicht die Anpassungsmöglichkeiten der Schaltflächen (Links, eingebettete Abfragen usw.), die die Telegram-API bietet.
Grundlagen zum Erstellen von Schaltflächen inline
Inline-Schaltflächen im Aiogram ermöglichen das Hinzufügen interaktiver Elemente zu Nachrichten. Sie können verwendet werden, um Schnittstellen in Boten zu erstellen oder um zusätzliche Informationen vom Benutzer zu erhalten.
Verwenden Sie die InlineKeyboardButton-Klasse, um Inline-Schaltflächen in aiogram zu erstellen. Jede Schaltfläche sollte einen Text haben, der auf der Schaltfläche angezeigt wird, sowie CallbackData, eine ID, die zusammen mit dem Klick auf die Schaltfläche übergeben wird.
Beispiel zum Erstellen einer Schaltfläche:
button = InlineKeyboardButton('Нажми меня', callback_data='button_pressed')
Nachdem die Schaltfläche erstellt wurde, muss sie dem InlineKeyboardMarkup hinzugefügt werden, der zusammen mit der Nachricht übergeben wird.
Beispiel zum Hinzufügen einer Schaltfläche zu InlineKeyboardMarkup:
inline_keyboard = InlineKeyboardMarkup()inline_keyboard.add(button)
Nachdem eine Schaltfläche zu InlineKeyboardMarkup hinzugefügt wurde, kann sie der Nachricht mit der reply_markup-Methode hinzugefügt werden, wenn die Nachricht gesendet wird.
Beispiel für das Hinzufügen von InlineKeyboardMarkup zu einer Nachricht:
await message.reply('Нажми кнопку', reply_markup=inline_keyboard)
Das Erstellen von Inline-Schaltflächen in aiogram besteht also darin, InlineKeyboardButton-Objekte zu erstellen, sie zu InlineKeyboardMarkup hinzuzufügen und diese mithilfe der reply_markup-Methode der Nachricht hinzuzufügen.
Schritte und Beispiele
Im Folgenden sind die grundlegenden Schritte und Beispiele aufgeführt, mit denen Sie Inline-Schaltflächen mithilfe der Aiogram-Bibliothek erstellen und konfigurieren können:
| Schritt | Die Beschreibung | Ein Beispiel |
|---|---|---|
| 1 | Installieren Sie die Aiogram-Bibliothek mit dem Befehl pip: | pip install aiogram |
| 2 | Importieren Sie die erforderlichen Module: | from aiogram import Bot, types |
| 3 | Erstellen Sie eine Instanz der Bot-Klasse, indem Sie das Token Ihres Bot übergeben: | bot = Bot(token="YOUR_BOT_TOKEN") |
| 4 | Importieren Sie die Klassen, die Sie für die Arbeit mit Inline-Schaltflächen benötigen: | from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton |
| 5 | Erstellen Sie eine Instanz der InlineKeyboardMarkup-Klasse, die alle Ihre Inline-Schaltflächen enthält: | keyboard = InlineKeyboardMarkup() |
| 6 | Erstellen Sie für jede Schaltfläche eine Instanz der InlineKeyboardButton-Klasse, und fügen Sie diese der Instanz der InlineKeyboardMarkup-Klasse hinzu: | button1 = InlineKeyboardButton(text="Button 1", callback_data="button1") |
| 7 | Legen Sie einen Handler für jede Schaltfläche mithilfe der Methode fest .add() : | keyboard.add(button1) |
| 8 | Senden Sie eine Nachricht mit Inline-Schaltflächen mit der Methode .send_message() : | await bot.send_message(chat_id=chat_id, text="Beispielnachricht mit Inline-Schaltflächen", reply_markup=keyboard) |
Anpassung der Inline-Tasten
Die Aiogram-Bibliothek bietet die Möglichkeit, das Aussehen der Inline-Buttons so anzupassen, dass sie dem Design Ihres Telegrammbots entsprechen. Die Schaltflächen können in verschiedenen Größen, Farben und Symbolen oder Text enthalten sein.
Zum Anpassen der Inline-Schaltflächen werden die Parameter verwendet text, callback_data und style. Parameter text legt den angezeigten Text auf der Schaltfläche fest, und callback_data legt die Daten fest, die beim Klicken auf die Schaltfläche an den Bot gesendet werden sollen.
Sie können den Stil der Schaltfläche mit einer Einstellung ändern style. Es kann einen der folgenden Werte annehmen:
- default - taste mit Standardstil;
- primary - taste mit Hauptfarbe;
- positive - taste mit positiver Farbe;
- negative - knopf mit negativer Farbe.
Sie können die Tasten auch festlegen Ikonen verwenden eines Parameters text. Um beispielsweise ein Häkchen-Symbol zu einer Schaltfläche hinzuzufügen, müssen Sie den Text der Schaltfläche im folgenden Format angeben: ✅ Text-Taste. Wenn Sie ein Ausrufezeichensymbol hinzufügen möchten, müssen Sie den Text der Schaltfläche im folgenden Format angeben: кнопки️ Button Text.
Um schöne Inline-Schaltflächen zu erstellen, können Sie verschiedene Parameter kombinieren, um das gewünschte Ergebnis zu erzielen. Um beispielsweise eine große grüne Schaltfläche mit einem Symbol zu erstellen, können Sie den folgenden Code verwenden:
button = InlineKeyboardButton("🟢 Большая зеленая кнопка", callback_data="button_data",style="positive", text="🟢 Большая зеленая кнопка")
Auf diese Weise können Sie die Inline-Tasten im Aiogram einfach anpassen und anpassen, um sie Ihren Bedürfnissen und Ihrem Bot-Design anzupassen.
Ändern von Farbe, Größe und Stil
Sie können die Attribute callback_data und style verwenden, um den Stil der Schaltflächen in aiogram zu ändern. Mit dem callback_data-Attribut können Sie die Daten angeben, die beim Klicken auf die Schaltfläche an den Handler übergeben werden sollen. Mit dem style-Attribut können Sie einen Schaltflächenstil festlegen, z. B. Hintergrundfarbe, Schriftgröße, Schaltflächenbreite usw.
Um beispielsweise die Hintergrundfarbe einer Schaltfläche zu ändern, können Sie das Attribut style="bg_color: #ff0000" verwenden. Und um die Schriftgröße festzulegen, können Sie das Attribut style="font_size: 20px" verwenden.
button = InlineKeyboardButton("Кнопка", callback_data="data", style="bg_color: #ff0000; font_size: 20px;")
In diesem Beispiel wird die Schaltfläche mit einer roten Hintergrundfarbe versehen und die Schriftart hat eine Größe von 20 Pixeln.
Sie können auch andere style - Attribute wie text_color verwenden, um die Farbe des Schaltflächentexts zu ändern, font_family, um die Schriftart zu ändern, width, um die Breite der Schaltfläche festzulegen usw.
button = InlineKeyboardButton("Кнопка", callback_data="data", style="text_color: #0000ff; font_family: Arial; width: 100px;")
In diesem Beispiel hat der Text der Schaltfläche eine blaue Farbe, die Schriftart ist Arial und die Breite der Schaltfläche beträgt 100 Pixel.
Handhabung von Inline-Tastendrücken
Um einen Klick auf die Inline-Schaltfläche zu verarbeiten, müssen Sie einen entsprechenden Handler definieren. Sie können dazu einen Dekorateur verwenden @dp.callback_query_handler(). Als Parameter wird die Text-ID der Schaltfläche übergeben, auf die der Benutzer geklickt hat.
@dp.callback_query_handler(button_data='button1') async def handle_button1(callback_query: CallbackQuery): await callback_query.answer('Sie haben die Taste 1 gedrückt') .
Innerhalb des Handlers können Sie verschiedene Aktionen ausführen, mit der Datenbank interagieren oder Nachrichten an den Benutzer senden. Sie können den Status des Benutzers auch ändern, indem Sie den Kontext zwischen den Schaltflächen beibehalten.
Sie können verschiedene Klassenmethoden verwenden, um einen Klick auf eine Schaltfläche zu verarbeiten CallbackQuery. Sie können beispielsweise eine Antwort an einen Benutzer senden, indem Sie eine Methode verwenden answer() oder ändern Sie den Text der ursprünglichen Nachricht mithilfe der Methode edit_message_text().
@dp.callback_query_handler(button_data='button2') async def handle_button2(callback_query: CallbackQuery): await callback_query.answer('Sie haben auf die Schaltfläche 2 geklickt') await callback_query.edit_message_text('Neuer Nachrichtentext') .
Auf diese Weise ermöglicht die Verarbeitung von Inline-Tastendrücken dem Bot, mit dem Benutzer zu interagieren und abhängig von der ausgewählten Schaltfläche verschiedene Aktionen auszuführen.
Methoden und Ereignishandler
Aiogram verwendet Methoden und Ereignishandler, um Inline-Schaltflächen zu erstellen. Mit Methoden können Sie Schaltflächen mit verschiedenen Attributen wie Text, URL, Callback-Daten erstellen. Mit Ereignishandlern können Sie bestimmen, welcher Code ausgeführt wird, wenn Sie auf eine Schaltfläche klicken.
Methoden:
InlineKeyboardButton: Verwenden Sie diese Methode, um eine Schaltfläche mit Text und (optional) einer URL zu erstellen. Hier ist ein Beispiel für das Erstellen einer Schaltfläche mit dem Text "Klick auf mich" und einem URL-Link "https://example.com ":
button = types.InlineKeyboardButton(text="Нажми меня", url="https://example.com")
InlineKeyboardMarkup: Verwenden Sie diese Methode, um ein Markup zu erstellen, dem Sie Schaltflächen hinzufügen können. Im Folgenden finden Sie ein Beispiel für das Erstellen eines Ein-Knopf-Markups:
markup = types.InlineKeyboardMarkup()markup.add(button)
CallbackButton: Diese Methode wird verwendet, um eine Schaltfläche mit Text und Callback-Daten zu erstellen. Callback-Daten sind eine Zeichenfolge, die beim Klicken auf eine Schaltfläche an den Ereignishandler übergeben wird. Hier ist ein Beispiel für das Erstellen einer Schaltfläche mit dem Text "Push me" und den Callback-Daten "button_pressed":
button = types.InlineKeyboardButton(text="Нажми меня", callback_data="button_pressed")
Ereignishandler:
CallbackQueryHandler: Dieser Ereignishandler wird aufgerufen, wenn Sie auf eine Schaltfläche mit Callback-Daten klicken. Darin können Sie den Code definieren, der ausgeführt wird, wenn Sie auf die Schaltfläche klicken. Im folgenden Beispiel wird ein Ereignishandler für die Callback-Daten "button_pressed" erstellt:
@dp.callback_query_handler(lambda callback_query: callback_query.data == 'button_pressed')async def button_pressed_handler(callback_query: types.CallbackQuery):await bot.send_message(chat_id=callback_query.from_user.id, text="Кнопка нажата!")
Auf diese Weise können Sie mithilfe von Methoden und Ereignishandlern in aiogram Schaltflächen in Ihrem Telegramm-Bot erstellen und inline verarbeiten.