Telegram introduced Bot API 5.1 带有 ChatMemberUpdated 以及 Update 类中的字段 my_chat_member
和 chat_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 正确地做到这一点?
答案 0 :(得分:1)
使用 ChatMemberHandler 捕获更新(PTB v13.4 中的新功能)并检查 update.my_chat_member.new_chat_member.status
以查看您的机器人是否被阻止。但是,阻止机器人与简单地发送 /cancel
命令并不完全相同,因此我建议保留 MessageHandler
(或者更好的是,将其更改为 CommandHandler(['cancel', 'stop'], flow_stop_chat)
)