函数@bot.callback_query_handler不起作用

问题描述 投票:0回答:1

这是我的第一个电报机器人,我遇到了问题。尽管机器人输出按钮并且用户可以单击它们,但函数 @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 的文档,但没有找到任何有助于解决此问题的内容。如果有人知道该怎么办,请帮忙

python python-3.x callback bots py-telegram-bot-api
1个回答
0
投票

您给予了

call: True
,但在这里您给予了
callback
callback.data
。 只需将其更改为
callback: True
即可。 重写为:

@bot.callback_query_handler(func=lambda callback: True)
def check_callback(callback):
......
© www.soinside.com 2019 - 2024. All rights reserved.