python-telegram-bot CallbackQueryHandler 在重新启动机器人后无法处理最后一条消息

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

我正在使用

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 callback telegram telegram-bot python-telegram-bot
1个回答
0
投票

我不太确定如何解释你的问题,所以我提供可能的解释的答案:

  • 对话处理程序的入口点是
    MessageHandler
    。如果您希望通过按钮开始对话,请使用
    CallbackQueryHandler
    (另外或替代)
  • 默认情况下,Python 脚本重新启动时不会保存对话的当前状态。如果您需要,请查看PTB 内置持久性设置

免责声明:我目前是

python-telegram-bot
的维护者。

© www.soinside.com 2019 - 2024. All rights reserved.