Задать вопрос
Levman5
@Levman5
print(“Hello World!”)

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

Здравствуйте, как мне получить текст написанный на инлайн кнопке в pytelegrambotapi?
  • Вопрос задан
  • 887 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 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)

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

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽