Как на Python для телеграмм-бота привязать готовую функцию к кнопке?
Уже готова функция - определение погоды в любом городе. Но мне надо привязать функцию к кнопке. Т.е. кнопка при запуске бота появляется под сообщением, нажимаешь, и бот предлагает узнать погоду.
button1 = types.InlineKeyboardButton(...?)
markup.row(button1)
Таким образом можно сделать? Если да, то как?
Ответы (1 шт):
Автор решения: Pet Linux
→ Ссылка
Можно сделать так:
button1 = types.InlineKeyboardButton(text="Текст кнопки", callback_data="weather_button") # замените Текст кнопки на свой
markup.row(button1) # в этой строке ничего не изменилось
Потом, ниже в коде, написать обработчик:
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == 'weather_button':
# тут вызываете всё что нужно, например, если функция называется
# weather, то вызываете weather(), а если нужно передать message, используйте weather(call.message)
# или если просто нужно использовать message, то используйте call.message