Найти тему

#2 inline-Кнопки в телеграмм боте на python aiogram . PYTHON aiogram часть 2

Оглавление

Сегодня я вам расскажу как добавить inline кнопки в telegram бота .

Перед начало советую прочитать прошлую статью про aiogram .

Начало

В директории нашего бота создаем файл с названием keyboard.py .

В нем мы импортируем следующее

from aiogram.types import InlineKeyboardMarkup,InlineKeyboardButton.

Теперь мы создаем переменную menu которая будет содержать наши кнопки.

menu =InlineKeyboardMarkup(inline_keyboard=[
[
InlineKeyboardButton(text="привет",callback_data="hay")
],
[
InlineKeyboardButton(text="пока",calldata_data="goodbay")
],
])

В InlineKeyboardButton callback_data это то по чему мы будем определять что нажал пользователь .

Теперь переходим в главный файл нашего бота .

Импортируем наше меню и т.д.

from keyboard import menu
from aiorgam.types import CallbackQuery

Делаем хэндлер ( обработчик ) наших нажатий на кнопку

@dp.callback_query_handler()

Далее создаем функцию обрабатывающею наши нажатия и в зависимости от чего мы нажали она будет отправлять текст.

async def heandler_callback(call: CallbackQuery):
----if call.data =="hay":
--------await call.message.answer("привет")
----elif call.data=="goodbay":
--------await call.message.answer("пока")

Последний штрих

Осталось отправлять наше меню

from aiogram.types import Message

@dp.message_handler():
async def send_menu(msg:Message):
----await msg.answer("нажми на кнопку и я отвечу",reply_murkup=menu)

Теперь запускаем пишем любой текст и он отправляет наше меню . Нажимаем любую кнопку и он взависимости от нажатой кнопки отправляет текст .

Конец