You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启「隐藏成员」时aiogram机器人无法捕获新成员的问题

解决aiogram在「隐藏成员」群组中无法检测新成员的问题

当群组开启「隐藏成员」设置时,Telegram不会在群聊内发送新成员加入的系统通知,因此基于@dp.message_handler(content_types=types.ContentTypes.NEW_CHAT_MEMBERS)的处理器无法捕获到新成员事件。但可以通过监听chat_member类型的更新来解决这个问题——只要机器人拥有群组管理员权限并开启「查看成员」权限,Telegram会直接向机器人推送成员状态变更的事件,不受「隐藏成员」设置影响。

具体实现步骤

  1. 确认机器人权限

    • 将机器人添加为群组管理员,确保开启「查看成员」权限(这是接收chat_member更新的必要条件)。
  2. 使用ChatMemberHandler替代消息处理器
    放弃监听NEW_CHAT_MEMBERS消息,转而监听成员状态变更事件:

    from aiogram import Dispatcher
    from aiogram.types import ChatMemberUpdated, ChatMember
    
    async def handle_new_member(event: ChatMemberUpdated):
        # 判断用户是否为新加入:从非成员状态变为成员状态
        if (event.new_chat_member.status == ChatMember.MEMBER 
            and event.old_chat_member.status == ChatMember.LEFT):
            user = event.new_chat_member.user
            # 发送欢迎消息
            await event.bot.send_message(
                chat_id=event.chat.id,
                text=f"欢迎 {user.mention_html()} 加入我们的群组!"
            )
    
    def register_join_handlers(dp: Dispatcher):
        dp.chat_member_handler()(handle_new_member)
    

关键注意事项

  • 如果机器人没有管理员权限,无法获取chat_member更新,这是Telegram的权限限制,没有绕过方法。
  • chat_member更新仅推送给机器人,不会在群聊中显示系统消息,完全适配「隐藏成员」的群组设置。

内容的提问来源于stack exchange,提问作者Saliomsbnaiurealiosma Calipmbn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:15:04