Не уверен, что можно вытащить текст из пересланных кнопок, можно легко вытащить из собственных кнопок:
Решение на aiogram:
При создании кнопки мы записываем текст кнопки в CallBackData, потом при нажатии на кнопку просто в отдельном хендлере вытаскиваем текст:
#Создаю CallbackDat-у:
cb = CallbackData('post', 'msg_text')
#Handler, который активируется при нажатии на кнопку:
@dp.callback_query_handler(cb.filter())
async def callbacks(call: types.CallbackQuery, callback_data: dict,):
await call.answer()
#Вытаскиваю текст из CallbackData:
message_text = callback_data['msg_text']
#Хендлер, который активируется по команде test:
@dp.message_handler(commands="test")
async def but(message: types.Message):
#Создаю клавиатуру и кнопки:
button = (types.InlineKeyboardButton(text="Привет", callback_data=cb.new(msg_text ="Привет")))
keyboard = types.InlineKeyboardMarkup(row_width=3).add(button)
#Отправляю сообщение с прикрепленной клавиатурой:
await message.answer("Hi",reply_markup = keyboard)
Так же можно вывести список всех кнопок прикрепленных к сообщению:
@dp.callback_query_handler(cb.filter())
async def callbacks(call: types.CallbackQuery, callback_data: dict,):
await call.answer()
print(call) """Выведет json, где под его конец будет список всех кнопок. Вряд ли получиться вытащить текст нужной кнопки, но возможно вам и поможет.... Обратиться к списку можно так: call["message"]["reply_markup"]["inline_keyboard"]['Тут номер строки']['Тут номер кнопки в строке']['text'] """