Discord.py中使用授权机器人添加用户至服务器的实现可行性问询
Discord.py场景下机器人实现代用户加入服务器的可行性说明
首先明确结论:可以实现,但存在严格的前提限制,无法仅靠给机器人授予服务器权限就绕过用户自主操作直接拉人。
必须满足的前置条件
- 你的Discord应用需要先在开发者后台申请
guilds.join这个OAuth2专属权限scope,该权限属于敏感权限,若你的机器人服务的服务器数量超过100个,还需要向Discord官方提交资质审核通过后才能获得使用资格。 - 必须提前获取目标用户的主动OAuth2授权,授权时同样需要勾选
guilds.joinscope,拿到用户的有效access token后才能执行加群操作,跳过用户授权的拉人行为属于违反Discord服务条款的操作,会直接导致应用被封禁。 - 你的机器人账号在目标服务器内需要持有「管理成员」权限,才能成功调用加人接口。
Discord.py中的实现方式
你可以直接调用库内置的Guild.add_member()方法完成操作,参考代码片段如下:
# 需提前获取到目标服务器实例、待添加用户的ID以及用户授权下发的access_token target_guild = bot.get_guild(123456789012345678) # 替换为你的目标服务器ID await target_guild.add_member( user_id=987654321098765432, # 替换为待添加用户的Discord ID access_token="user_oauth2_access_token_here" # 替换为用户授权后拿到的有效access token )
注意:若用户已经在目标服务器内、用户授权已过期、或你的应用未申请到对应权限scope,接口都会返回对应的错误信息。所有操作必须严格遵循Discord开发者协议和用户隐私规范,禁止滥用该功能拉取未授权用户进群。
内容的提问来源于stack exchange,提问作者Awe Manacube
相关产品推荐
相关产品推荐

