Узнать текст InlineKeyboardButton в telebot

Есть клавиатура(db.view_all_coins(call.message.chat.id) возвращает список).

markup = types.InlineKeyboardMarkup(row_width=3)
for coin in db.view_all_coins(call.message.chat.id):
    markup.add(types.InlineKeyboardButton(text=coin, callback_data='view_info'))

Текст для каждой кнопки генерируется из этого списка. Как мне потом получить этот текст по нажатии на эту клавиатуру? Пробовал call.message.json['reply_markup']['inline_keyboard'][0][0]['text'] но мне нужно возвращать именно текст из нажатой кнопки, а не просто 1 элемент списка.


Ответы (1 шт):

Автор решения: usrsem

Чтобы обрабатывать текст, ты можешь воспользоваться ReplyKeyboardMarkup. Если хочешь использовать именно InlineKeyboardButton, то можешь захватывать возвращаемую callback_data и находить по ней текст либо из объекта клавиатуры, который имеет структуру, либо задать именнованный кортёж или словарь и записать туда callback_data и buttonText, после чего обращаться по callback_data и получать текст

{"inline_keyboard": 
[
    [{"text": "string", "callback_data": "string"}], 
    [{"text": "string", "callback_data": "string"}],
]}
→ Ссылка