如何跟踪用户何时使用 python-telegram-bot (Bot API 5.1) 踢 Telegram Bot

时间:2021-04-06 09:49:11

标签: telegram telegram-bot python-telegram-bot

Telegram introduced Bot API 5.1 带有 ChatMemberUpdated 以及 Update 类中的字段 my_chat_memberchat_member

但是如果我正在使用 ConversationHandler,那么现在如何跟踪用户何时停止机器人?

以前,我的机器人正在等待诸如 /cancel/stop 之类的命令。

conversation_handler = ConversationHandler(
    entry_points=...,
    states=...,
    fallbacks=[
        # ...
        MessageHandler(Filters.regex('^/(cancel|stop)$'), flow_stop_chat),
        # ...
    ],
    allow_reentry=True,
    name=current_bot_label,
    persistent=True,
)

现在如何使用 ChatMemberUpdated 正确地做到这一点?

1 个答案:

答案 0 :(得分:1)

使用 ChatMemberHandler 捕获更新(PTB v13.4 中的新功能)并检查 update.my_chat_member.new_chat_member.status 以查看您的机器人是否被阻止。但是,阻止机器人与简单地发送 /cancel 命令并不完全相同,因此我建议保留 MessageHandler(或者更好的是,将其更改为 CommandHandler(['cancel', 'stop'], flow_stop_chat)