Как передать в callback данные из функции? aiogram telegram
У меня есть функция которая отслеживать заявки на регистрацию, как только появляется новая заявка она выдает сообщение с данными о пользователе и дает две inline кнопки, принять и отклонить.
for zayavka in zayavki:
keyboard = types.InlineKeyboardMarkup()
keyboard.add(types.InlineKeyboardButton(text="Принять пользователя", callback_data="accept_user")) #сделать обработку кнопки
keyboard.add(types.InlineKeyboardButton(text="Отклонить Заявку", callback_data="decline_user"))
await bot.send_message('140985301', "Номер заявки: {} \n Логин ТГ: @{} \n Lolz Профиль: {}".format(zayavka[0],zayavka[1],zayavka[2]),
reply_markup=keyboard,)
Вопрос как мне передать в callback_data вместе с accept_user,id пользователя который содержится в dict zayavki[1]
Что бы по итогу функция которая триггерится по эвенту accept_user знала юзера с каким id принимать?
Ответы (1 шт):
Достаточно просто оказалось,
Необходимо использовать CallBackData
Для этого импортируем
from aiogram.utils.callback_data import CallbackData
далее создаем объект CallBackData
call_back_info = CallbackData('Здесь префикс объекта',"id","username")
Далее просто в клавиатуре используем
keyboard.add(types.InlineKeyboardButton(text="Принять пользователя", callback_data=call_back_info.new(id=Значение,username=значние)
p.s Обратите внимание, длинна колбека не более 64 символов, это если вам к примеру нужно будет передать третий параметр, для этого сокращайте переменные до одной буквы и подписывайте их потом :)