使用events.ChatAction无法捕获频道new_title改名触发事件该如何解决?
问题原因
- 机器人缺少目标频道的对应管理权限
频道标题修改属于管理类配置变更事件,仅拥有「管理频道」权限的管理员账号可以接收到事件推送;而置顶消息属于公共消息类动作,普通成员身份即可捕获,这也是你能收到new_pin事件但收不到new_title事件的核心原因。 - 事件监听未显式匹配标题变更动作
events.ChatAction默认监听的动作范围可能未覆盖标题变更类事件,需要显式指定过滤规则才能精准捕获。 - 依赖库版本过旧
旧版本Telethon对new_title字段的适配存在缺陷,会导致字段读取异常、事件漏触发的问题。
修正方案
你可以先将机器人设为目标频道的管理员并开启「管理频道」权限,再使用如下优化后的代码测试:
@bot.on(events.ChatAction(func=lambda e: e.title_changed)) async def handler(event): print("\n--\n",event,"\n--\n") if event.new_title: print("ok") # 此处添加删除通知消息的逻辑
如果还是无法触发,将Telethon升级到最新稳定版即可解决:pip install --upgrade telethon
内容的提问来源于stack exchange,提问作者Drandroidam
相关产品推荐
相关产品推荐

