Библиотека `aiogram-dialog` позволяет создавать пользовательские интерфейсы в ботах, работающих на базе `aiogram`. С помощью `aiogram-dialog`, можно управлять диалогами, включая использование инлайн клавиатуры.
Чтобы получить значение нажатой кнопки в `aiogram-dialog`, вам нужно создать обработчик, который будет реагировать на колбэк-данные, отправленные этими кнопками.
Вот пример того, как можно это сделать:
```python
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram_dialog import DialogRegistry, StartMode, DialogManager, Dialog
from aiogram_dialog.widgets.kbd import Button, Row, Group
from aiogram_dialog.widgets.text import Const
API_TOKEN = 'your_api_token_here'
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot, storage=MemoryStorage())
dp.middleware.setup(LoggingMiddleware())
# Определим кнопку с колбэк-данными
button_1 = Button(Const("Button 1"), id="btn1", on_click="button_click")
# Создадим диалог с инлайн клавиатурой
dialog = Dialog(Row(button_1))
# Регистрируем диалог
registry = DialogRegistry(dp)
registry.register(dialog)
# Обработчик колбэк-комманды
async def button_clicked(c: types.CallbackQuery, button: Button, manager: DialogManager):
await c.message.answer(f"You clicked {button.widget_text}")
await c.answer()
# Привязываем обработчик к действию 'button_click'
@dp.callback_query_handler()
async def on_callback(c: types.CallbackQuery, button: Button, manager: DialogManager):
actions = {
"btn1": button_clicked,
}
action = actions.get(c.data)
if action:
await action(c, button, manager)
# Команда для запуска бота
@dp.message_handler(commands=['start'])
async def start(message: types.Message, dialog_manager: DialogManager):
await dialog_manager.start(Dialog.start)
# Запуск бота
if __name__ == '__main__':
from aiogram import executor
executor.start_polling(dp)
```
Этот простой пример показывает, как создать бота с одной кнопкой. Когда пользователь нажимает кнопку, бот отправит сообщение с текстом на кнопке. Обратите внимание, что в коллбэк-обработчик передается `button`, в котором содержатся данные нажатой кнопки. Вы можете прочитать эти данные и выполнить необходимые действия.
Помните, что вам, возможно, потребуется адаптировать пример в соответствии с вашей логикой и потребностями. Особенно важно грамотно организовать обработку коллбэков и правильное определение функций обработчиков.