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

如何配置Telegram Bot仅允许指定管理员将其加入群组?

实现仅允许指定管理员将机器人添加到群组的方法

你之前用的chat_join_request是处理用户申请加入群组的请求,和机器人被邀请进群组的场景完全无关,所以只在用户申请进群的私聊请求里生效。要解决你的需求,得监听机器人自身的成员状态变更事件——my_chat_member。

具体实现步骤如下:

  1. 先准备好你的管理员ID列表(可以通过@userinfobot获取自己的Telegram ID)
  2. 监听my_chat_member更新,当机器人被添加到群组时,检查操作人是否在管理员列表内,不在的话直接让机器人退出群组

示例代码:

from aiogram import Router, types
from aiogram.filters import ChatMemberUpdatedFilter, IS_NOT_MEMBER, IS_MEMBER

router = Router()

# 替换成你的管理员ID列表
ADMIN_IDS = [123456789]

@router.my_chat_member(ChatMemberUpdatedFilter(
    member_status_changed=IS_NOT_MEMBER >> IS_MEMBER
))
async def handle_bot_added_to_chat(event: types.ChatMemberUpdated):
    # 获取添加机器人的用户ID
    added_by_user_id = event.from_user.id
    chat = event.chat

    if added_by_user_id not in ADMIN_IDS:
        # 非管理员添加,直接退出群组
        await event.bot.leave_chat(chat.id)
        # 可选:给操作人发送提示消息
        await event.bot.send_message(
            chat_id=added_by_user_id,
            text="抱歉,只有指定管理员才能将我添加到群组中"
        )

关键说明:

  • ChatMemberUpdatedFilter(IS_NOT_MEMBER >> IS_MEMBER):精准过滤出机器人从非成员变为成员的场景,也就是被添加到群组的时刻
  • event.from_user.id:获取发起添加操作的用户ID,以此判断是否为授权管理员
  • 记得在BotFather那里设置/setprivacy为Disabled,否则机器人可能无法收到my_chat_member相关事件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:12:08