我使用 python-telegram-bot 库创建了一个机器人,用户能够浏览状态,但是当出现错误时,我需要重新启动机器人,当我重新启动机器人时,用户需要再次输入 /start 以便与机器人进行通信,而不是这样,有没有一种方法可以让用户从用户之前在机器人中的任何状态继续?
除了CommandHandler之外,通过在entry_points中添加MessageHandler,您可以检查用户之前是否曾在您的程序中,并且可以重定向注册用户,而无需键入/start
async def check_user_state(update: Update, context:ContextTypes):
if user_exists:
return MENU_EXE
elif user_exists_is_not_active:
return NONEACTIVE
else:
return START
为特定状态定义附加消息处理程序
def main():
app = Application.builder().token(Token).build()
conv_handler = ConversationHandler(
entry_points=[
MessageHandler(None, check_user_state),
CommandHandler("start", start_command)
],