Узнать текст 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 шт):
Чтобы обрабатывать текст, ты можешь воспользоваться ReplyKeyboardMarkup. Если хочешь использовать именно InlineKeyboardButton, то можешь захватывать возвращаемую callback_data и находить по ней текст либо из объекта клавиатуры, который имеет структуру, либо задать именнованный кортёж или словарь и записать туда callback_data и buttonText, после чего обращаться по callback_data и получать текст
{"inline_keyboard":
[
[{"text": "string", "callback_data": "string"}],
[{"text": "string", "callback_data": "string"}],
]}