Telegram je populární poslem, který vývojářům poskytuje možnost vytvářet vlastní roboty pro automatizaci různých úkolů. Jedním z hlavních funkčních prvků v telegramu jsou inline tlačítka, která umožňují uživateli komunikovat s robotem.
K vytvoření inline tlačítek v telegramovém botě v jazyce Python lze použít knihovnu aiogram. Tato knihovna poskytuje praktické nástroje pro vývoj robotů, včetně možnosti vytváření tlačítek.
Inline tlačítka vám umožňují provádět průzkumy, zobrazovat nabídky, přijímat odpovědi uživatele, odesílat soubory a další. Mohou být prezentovány jako tlačítka s textem nebo obrázkem a mohou obsahovat další možnosti, jako je callback_data a url.
Vytváření tlačítek v telegramu v Pythonu pomocí aiogram: krok za krokem instrukce
V tomto článku se podíváme na to, jak vytvořit inline tlačítka v telegramu v Pythonu pomocí knihovny aiogram. Aiogram je výkonná knihovna, která Vám umožňuje vyvíjet roboty pro Telegram na asynchronním přístupu.
Krok 1: Instalace aiogram
Prvním krokem je instalace knihovny aiogram, která nám umožní vytvářet roboty pro Telegram v Pythonu. Chcete-li nainstalovat aiogram, spusťte příkaz:
pip install aiogram
Krok 2: Vytvoření a konfigurace robota
Po instalaci aiogramu je nutné vytvořit robota na telegramu a získat jeho API klíč. Chcete-li to provést, přejděte na Telegram a vyhledejte robota @BotFather. Postupujte podle pokynů BotFather pro vytvoření robota a získejte jeho API klíč.
Po obdržení klíčového API vytvořte nový soubor Pythonu a přidejte následující kód:
import logging from aiogram import Bot, Dispatcher, types from aiogram.contrib.fsm_storage.memory import MemoryStorage # inicializace bot = Bot (token= "YOUR_API_TOKEN") # inicializace Správce DP = Dispatcher (bot, storage=MemoryStorage ()) # nastavení logging.basicConfig loging. level=logging.INFO)
Krok 3: Vytvoření příkazu s tlačítky
Nyní můžeme vytvářet příkazy s tlačítky. Přidejte do souboru následující kód:
@dp.message_handler(commands=['start']) async def start_command(message: types.Message): # vytvoření a konfigurace klávesnice = types . InlineKeyboardMarkup() button1 = types.InlineKeyboardButton (text="Tlačítko 1", callback_data="button1") button2 = types.Inlinekeyboardbutton (text="Tlačítko 2", callback_data="button2") keyboard.add (button1, button2) # odesílání zprávy s tlačítky await message.answer ("vyberte tlačítko:", reply_markup=keyboard)
Krok 4: zpracování callback ' s
Nyní je nutné vytvořit obslužnou rutinu pro tlačítka. Přidejte do souboru následující kód:
@dp.callback_query_handler(lambda callback_query: True) async def handle_callback_query(callback_query: types.CallbackQuery): if callback_query.data = = "button1": await bot. send_message(callback_query.from_user.id," vybrali jste tlačítko 1") elif callback_query.data = = "button2": await bot. send_message(callback_query.from_user.id else: await botsend_message(callback_query.from_user.id neznámé tlačítko)
Krok 5: spuštění robota
Nyní je vše připraveno ke spuštění robota. Přidejte do souboru následující kód:
if __name__ == '__main__': executor.start_polling(dp)
Nyní můžete spustit svůj robot pomocí příkazu python your_bot_file.py a začít používat inline tlačítka v telegramu v Pythonu pomocí aiogram. Hodně štěstí při navrhování vašeho robota!
Instalace knihovny aiogram a konfigurace prostředí Pythonu
Chcete-li vytvořit robota na telegramu pomocí knihovny aiogram, musíte provést několik kroků. V této části se podíváme na instalaci knihovny a nastavení prostředí Pythonu.
Krok 1: Instalace Pythonu
Abychom mohli začít s aiogramem, budeme potřebovat Python verze 3.6 nebo vyšší. Můžete si stáhnout a nainstalovat požadovanou verzi Pythonu z oficiálních stránek (https://www.python.org/).
Krok 2: Vytvoření virtuálního prostředí
Doporučuje se vytvořit virtuální prostředí pro projekt, které jej izoluje od jiných projektů a nainstalovaných Python balíčků. K vytvoření virtuálního prostředí můžete použít nástroj venv, který je součástí standardní knihovny Pythonu. Chcete-li to provést, spusťte příkaz:
python3 -m venv myenv
kde myenv je název vašeho virtuálního prostředí.
Krok 3: Aktivace virtuálního prostředí
Pro aktivaci virtuálního prostředí použijte následující příkaz:
kde myenv je název vašeho virtuálního prostředí.
Krok 4: Instalace knihovny aiogram
Po aktivaci virtuálního prostředí nainstalujte knihovnu aiogram pomocí správce balíčků pip:
pip install aiogram
Nyní můžete ve svém projektu použít aiogram.
V této části jsme se podívali na instalaci knihovny aiogram a nastavení prostředí Pythonu. V následujících sekcích se podíváme na vytvoření robota a přidání inline tlačítek do Telegramu.
Inicializace robota a konfigurace obslužných rutin
Chcete-li začít pracovat s robotem na telegramu, musíte jej Inicializovat a nakonfigurovat obslužné rutiny. K tomu slouží knihovna aiogram v jazyce Python.
Prvním krokem je vytvořit objekt třídy Dispatcher-to je jádro pro práci s robotem. Dispečer je zodpovědný za registraci a volání psovodů. Je také vytvořen objekt třídy Bot-toto rozhraní pro práci s TELEGRAMOVÝM API.
Příklad inicializace robota:
import loggingfrom aiogram import Bot, Dispatcher# Инициализация логгераlogging.basicConfig(level=logging.INFO)# Инициализация объектов бота и диспетчераbot = Bot(token='YOUR_TELEGRAM_BOT_TOKEN')dp = Dispatcher(bot)
Po inicializaci robota a správce je nutné nakonfigurovat obslužné rutiny pro různé typy zpráv. Obslužné rutiny vám umožňují nastavit funkce, které budou vyvolány, když obdržíte konkrétní typ zpráv (například textovou zprávu nebo kliknete na inline tlačítko).
Příklad konfigurace obslužných rutin textových zpráv:
from aiogram import types# Обработчик текстовых сообщений@dp.message_handler(content_types=types.ContentType.TEXT)async def handle_text_message(message: types.Message):# Ваш код обработки текстового сообщенияpass
Příklad nastavení obslužných rutin klepnutí na inline tlačítka:
from aiogram import types# Обработчик нажатий на инлайн кнопку@dp.callback_query_handler()async def handle_inline_button_click(query: types.CallbackQuery):# Ваш код обработки нажатия на инлайн кнопкуpass
Inicializace robota a konfigurace obslužných rutin tak umožňují vytvořit základ pro práci s robotem na telegramu, zpracovávat různé typy zpráv a provádět potřebné kroky.
Vytvoření inline klávesnice a přidání tlačítek
Chcete-li vytvořit inline klávesnici v telegramu pomocí knihovny aiogram v Pythonu, musíte použít objekt InlineKeyboardMarkup. Umožňuje přidat tlačítka do jednoho řádku nebo do více.
Chcete-li přidat tlačítka do řádku, musíte použít metodu add(). Například následující kód přidá dvě tlačítka do jednoho řádku:
inline_keyboard = InlineKeyboardMarkup(row_width=2)inline_keyboard.add(InlineKeyboardButton("Кнопка 1", callback_data="button1"),InlineKeyboardButton("Кнопка 2", callback_data="button2"))
Chcete-li přidat několik řádků s tlačítky, musíte metodu add() několikrát zavolat. Každá výzva přidá řádek do klávesnice:
inline_keyboard = InlineKeyboardMarkup(row_width=2)inline_keyboard.add(InlineKeyboardButton("Кнопка 1", callback_data="button1"))inline_keyboard.add(InlineKeyboardButton("Кнопка 2", callback_data="button2"))
Každé tlačítko v klávesnici je objekt InlineKeyboardButton. Je mu předán text na tlačítku a data, která budou po stisknutí tlačítka odeslána zpět do chatu. V tomto případě se callback_data používá k identifikaci stisknutého tlačítka.
Manipulace s tlačítky a implementace funkce
Jakmile uživatel stiskne jedno z inline tlačítek, je nutné tuto událost zpracovat a provést příslušnou akci. K tomu byste měli použít obslužné rutiny událostí tlačítek.
V knihovně aiogram to lze provést pomocí metod CallbackQueryHandler a InlineKeyboardButton.callback_data .
Před použitím CallbackQueryHandler je nutné jej zaregistrovat ve Správci:
dp.register_callback_query_handler(callback_func)
V tomto kódu je callback_func funkce, která se vyvolá stisknutím tlačítka.
Každé tlačítko musí mít jedinečnou hodnotu callback_data, abyste pochopili, které tlačítko bylo stisknuto. Například:
keyboard = InlineKeyboardMarkup()button = InlineKeyboardButton("Нажми меня", callback_data='button_pressed')keyboard.add(button)
V tomto příkladu je hodnota callback_data pro tlačítko 'button_pressed'. Když uživatel stiskne toto tlačítko, zavolá se funkce uvedená v CallbackQueryHandler a hodnota callback_data bude převedena do této funkce:
async def callback_func(callback_query: CallbackQuery):callback_data = callback_query.dataif callback_data == 'button_pressed':# выполнить функцию при нажатии на кнопку
Po zpracování kliknutím na tlačítko tedy můžete přidat požadovanou funkčnost nebo vyvolat jiné metody vašeho robota.