电报机器人回调

时间:2020-12-29 10:42:12

标签: python bots telegram

我想让内联按钮的回调启动另一个功能,但我遇到了另一个问题。当我尝试使用处理程序时,出现此错误:

Traceback (most recent call last):
  File "C:\PyProjects\IssBot\bot.py", line 33, in <module>
    @bot.callback_query_handlers(func=lambda c: True)
TypeError: 'list' object is not callable

代码:

#bot.py
import telebot
from telebot.types import Message
import keyboards as kb
'''
@bot.callback_query_handlers(func=lambda call: True)
def process_callback_startkb(call):
    if call.data == 'btn_new':
        new_command_handler(call.message)

@bot.message_handler(commands=['start'])
@bot.edited_message_handler(commands=['start'])
def starting_bot(message):
    bot.reply_to(message, "Text", reply_markup=kb.start_inline_kb)


@bot.message_handler(commands=['new'])
def new_command_handler(message: Message):
    msg = bot.reply_to(message, 'Text')
    bot.register_next_step_handler(msg, song_name)

#keyboards.py
from telebot import types


inline_btn_new = types.InlineKeyboardButton("Text", callback_data='btn_new')
inline_btn_help = types.InlineKeyboardButton("Text", callback_data='btn_help')
start_inline_kb = types.InlineKeyboardMarkup(row_width=2)
start_inline_kb.row(inline_btn_new, inline_btn_help)

尝试了不同的处理程序使用方式。我从 Telebot 上的官方文档中尝试过的这个,并尝试了这个:

@bot.callback_query_handler(func=lambda call: 'btn_new' in call.data)

@bot.callback_query_handler(func=lambda call: call.data in 'btn_new')

@bot.callback_query_handler(func=lambda call: call.data in ['btn_new', 'btn_help'])

0 个答案:

没有答案