Как вызвать команду через кнопку в боте Telegram?

Всем привет, использую aigram.
Как я могу вызвать команду /help после нажатия на кнопку?
Можно ли повесить обработчик?

У меня есть этот код, который срабатывает после нажатия кнопки /start:
keyboard = types.ReplyKeyboardMarkup()
                button = types.KeyboardButton(text="Статистика оценок")
                keyboard.add(button)


Но после срабатывания выводится в чат только само название кнопки "Статистика оценок". Я бы хотел иметь что-то следующее: название кнопки остается прежним, но после нажатия в чат шла сама команда /help. Возможно ли это? Или придется вешать обработчик на сам текст, и вызывать дальнейшую функцию (которую также придется прописать и для команды /help)?
  • Вопрос задан
  • 537 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Обычные ReplyKeyboard кнопки не поддерживают подобную нагрузку.

Два варианта:
1. Вешайте обработчик на текст "Статистика оценок"
2. Используйте InlineMarkup, туда уже можно передать payload, при этом оставив ваш текст, но непонятно зачем.

Именно нажать на кнопку "Статистика оценок", чтобы она отправила текст "/help" в чат - нельзя

Просто повесьте два хендлера
@dp.message_handler(commands=['help'])
@dp.message_handler(lambda message: message.text and 'статистика оценок' in message.text.lower())
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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