Levman5
@Levman5
print(“Hello World!”)

Как получить текст на инлайн кнопке в pytelegrambotapi?

Здравствуйте, как мне получить текст написанный на инлайн кнопке в pytelegrambotapi?
  • Вопрос задан
  • 609 просмотров
Решения вопроса 1
jerwright
@jerwright
while True: coding()
Всё зависит от задачи. Если вам нужен текст кнопки, на которую нажал пользователь, то код будет следующим (в таком случае у кнопки обязательно должен быть параметр callback_data, иначе мы не сможем получить уникальное название кнопки):
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    if call.message:
        for row in call.message.json['reply_markup']['inline_keyboard']:
            if call.data==row[0]['callback_data']:
                print(f'Текст на нажатой кнопке: {row[0]["text"]}')


Если вам нужен текст каждой кнопки сообщения, то условие с call.data не имеет смысла:
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    if call.message:
        for row in call.message.json['reply_markup']['inline_keyboard']:
            print(row[0]['text'])
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@frolovelo
@bot.callback_query_handler(func=lambda call: True)
def answer(call):
    print(call.data)

Так проще, вроде)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы