【发布时间】:2021-12-04 09:10:06
【问题描述】:
我正在开发一个电报机器人,我有很多处理程序来处理用户的响应。
由于有许多处理程序,并且许多不同的对话框也是可能的。我将一些处理程序移动到不同的类(对话框)
import telebot
bot = telebot.TeleBot(tg_api_key)
@bot.message_handler(commands=['buy_something'])
def buy(message):
from dialogs.buy_something
import Buy_Dialog
w = Buy_Dialog(bot, message)
和:
@bot.message_handler(commands=['sell_something'])
def sell(message):
from dialogs.sell_something
import Sell_Dialog
w = Sell_Dialog(bot, message)
在对话类中,我可以通过以下方式向用户发送问题并从他们那里获得答案:
self.m = self.bot.send_message(message.chat.id, "Some question")
self.bot.register_next_step_handler(self.m, self.enter_your_name)
但现在我需要从按钮点击的用户回调中获取:
@bot.callback_query_handler(func=lambda call: True)
def button_click_yes_or_no(self, call):
所以我只能从main.py 中捕获它们,而不是在对话框内。
如何重新设计代码以获得清晰的逻辑和能够捕捉button_callback的代码?
【问题讨论】:
标签: python telegram py-telegram-bot-api