Узнать текст Inline кнопки Telebot?
есть кнопка
@bot.message_handler(commands=['start'])
def first_butn(first_butn):
markup = types.InlineKeyboardMarkup()
btn1= types.InlineKeyboardButton('что-то', callback_data='btn1')
markup.row(btn1)
При нажатии на эту кнопку появляется другая кнопка
@bot.callback_query_handler(func=lambda callback: True)
def check_callback_data(callback):
if callback.data == 'btn1':
markup = types.InlineKeyboardMarkup()
btn2= types.InlineKeyboardButton('что-то тут тоже', callback_data='btn2')
markup.row(btn2)
При нажатии на эту кнопку нужно чтобы вывело text кнопки btn1
Понимаю что я могу поменять callback_data на текст кнопки и тогда смогу вывести, но не хочу так делать
Дополнительно:
но не хочу так делать
Самое простое решение. Чем оно не угодило?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы узнать текст Inline кнопки в Telebot, необходимо использовать метод callback_query в обработчике событий. В этом методе можно получить информацию о нажатой кнопке и, следовательно, ее текст.
Пример кода на языке PHP:
$update = json_decode(file_get_contents('php://input'), true); if (isset($update['callback_query'])) { $callback_query = $update['callback_query']; $button_text = $callback_query['data']; // Теперь у вас есть текст нажатой Inline кнопки в переменной $button_text // Можно использовать эту информацию для дальнейшей обработки }
В данном примере мы получаем данные из входящего запроса и проверяем, есть ли в нем информация о нажатой Inline кнопке. Если она есть, то мы извлекаем текст кнопки и сохраняем его в переменную $button_text.
Таким образом, используя этот код, вы сможете получить текст нажатой Inline кнопки в Telebot и использовать его для нужных действий в вашем боте.