这是我的第一个电报机器人,我遇到了问题。尽管机器人输出按钮并且用户可以单击它们,但函数 @bot.callback_query_handler 未启动。
from telebot import types
from loader import bot
import time
current_year = time.localtime().tm_year
year = types.InlineKeyboardMarkup(row_width=2)
btn1 = types.InlineKeyboardButton(current_year, callback_data='btn1')
btn2 = types.InlineKeyboardButton(current_year + 1, callback_data='btn2')
year.add(btn1, btn2)
@bot.callback_query_handler(func=lambda call: True)
def check_callback(callback):
if callback.data == 'btn1':
bot.send_message(callback.message.chat.id, f'You choose {current_year} year')
elif callback.data == 'btn2':
bot.send_message(callback.message.chat.id, f'You choose {current_year + 1} year')
我阅读了 pyTelegrambotApi 的文档,但没有找到任何有助于解决此问题的内容。如果有人知道该怎么办,请帮忙
您给予了
call: True
,但在这里您给予了callback
和callback.data
。
只需将其更改为callback: True
即可。
重写为:
@bot.callback_query_handler(func=lambda callback: True)
def check_callback(callback):
......