如何使用aiogram通过机器人设置、管理Telegram群组权限
使用aiogram实现 Telegram 机器人群组权限管理
前置要求
你的机器人必须被设置为对应群组的管理员,且被授予管理群组权限的管理员权限,否则权限设置接口会调用失败。
核心用法
你需要用到ChatPermissions类定义权限规则,再调用set_permissions方法应用规则。
首先导入依赖:from aiogram.types import ChatPermissions
示例1:全局禁言普通群成员(仅管理员可发言)
# 定义禁言权限规则 restrict_permissions = ChatPermissions( can_send_messages=False, can_send_media_messages=False, can_send_polls=False, can_send_other_messages=False, can_add_web_page_previews=False, can_change_info=False, can_invite_users=False, can_pin_messages=False ) # 应用规则到指定群组,替换chat_id为你的目标群组ID await bot.get_chat(chat_id=YOUR_GROUP_ID).set_permissions(restrict_permissions)
示例2:恢复普通群成员默认发言权限
# 定义常规权限规则 normal_permissions = ChatPermissions( can_send_messages=True, can_send_media_messages=True, can_send_polls=True, can_send_other_messages=True, can_add_web_page_previews=True, can_change_info=False, can_invite_users=True, can_pin_messages=False ) # 应用规则到指定群组 await bot.get_chat(chat_id=YOUR_GROUP_ID).set_permissions(normal_permissions)
示例3:单独设置指定用户的群权限
只需在调用set_permissions时额外传入user_id参数即可,用户级权限优先级高于群组全局权限:
# 禁止ID为123456的用户发送消息 await bot.get_chat(chat_id=YOUR_GROUP_ID).set_permissions( permissions=ChatPermissions(can_send_messages=False), user_id=123456 )
权限参数说明
can_send_messages:允许发送文本、表情、贴纸、位置、联系人类基础消息can_send_media_messages:允许发送照片、视频、文件、音频类媒体消息can_send_polls:允许发起群投票can_send_other_messages:允许发送动画、游戏、内联机器人返回内容等特殊消息can_add_web_page_previews:允许用户发送的链接自动生成页面预览can_change_info:允许修改群组名称、描述、头像等公开信息can_invite_users:允许邀请新用户加入群组can_pin_messages:允许置顶群内消息
提示:不需要修改的权限参数可以省略不写,接口会保留原有配置。
内容的提问来源于stack exchange,提问作者Balaji Kotni
相关产品推荐
相关产品推荐

