python-telegram-bot CallbackQueryHandler 在重新启动机器人后对最后一条消息不起作用

python-telegram-bot CallbackQueryHandler doesn't work on the last message after restarting the bot

提问人:pigs never look back 提问时间:9/20/2023 更新时间:9/21/2023 访问量:68

问:

我用来创建一个机器人。python-telegram-bot

机器人在启动后等待来自用户的消息并且不起作用,当我单击机器人发送的消息按钮时,它首先需要接收来自用户的消息

只有当用户写入消息时,最后一条消息上的按钮才开始工作,也就是说,过去的消息将不再有意义

def main() -> None: application = Application.builder().token(telegram_token).build()
    conv_handler = ConversationHandler(
        entry_points=[
                      MessageHandler(filters.COMMAND, main_menu),
                      MessageHandler(filters.TEXT, main_menu)],
        states={
            START_ROUTES: [
                CallbackQueryHandler(main_menu_over, pattern="return_to_menu"),

                CallbackQueryHandler(support_menu, pattern="support"),
            ],
            END_ROUTES: [
                CallbackQueryHandler(main_menu_over, pattern="return_to_menu"),
            ],
        },
        fallbacks=[
                   MessageHandler(filters.COMMAND, main_menu),
                   MessageHandler(filters.TEXT, main_menu)],
    )
    application.add_handler(conv_handler)
    
    application.run_polling(allowed_updates=Update.ALL_TYPES)`

我以为在启动机器人后,有某种方法可以接收来自用户的回调查询,而不是消息

python电报机器人

评论


答:

1赞 CallMeStag 9/21/2023 #1

我不太确定用什么方式来解释你的问题,所以我提供了可能的解释的答案:

  • 对话处理程序的入口点是 s。如果您希望通过按钮开始对话,请使用(加法或代替)MessageHandlerCallbackQueryHandler
  • 默认情况下,在重新启动 python 脚本时不会保存会话的当前状态。如果你想要这个,请看一下 PTB 的内置持久性设置

免责声明:我目前是 的维护者。python-telegram-bot