Discord机器人无法获取服务器全部用户,仅返回自身ID求助
Discord机器人仅能获取自身用户ID的修复方案
问题根源:Intents权限配置错误
你代码里client.members = True的写法完全无效。Discord的网关意图(Intents)要求必须在初始化Intents对象时明确开启成员权限,否则机器人只能读取到自己的信息,无法获取服务器内的其他成员。
修正后的完整代码
import discord # 正确初始化Intents并开启成员获取权限 intents = discord.Intents.default() intents.members = True client = discord.Client(intents=intents) @client.event async def on_ready(): server = client.get_guild(985156775152087053) if server: for member in server.members: print(member) else: print("指定服务器不存在,请核对服务器ID是否正确") client.run("你的机器人Token")
关键额外步骤
必须在Discord开发者后台开启服务器成员特权意图:
- 登录Discord开发者平台,进入你的机器人应用页面
- 切换到「Bot」标签页
- 在「Privileged Gateway Intents」板块,开启「Server Members Intent」选项
另外要确保机器人在目标服务器中拥有查看成员的基础权限,避免因服务器权限限制导致无法获取成员列表。
内容的提问来源于stack exchange,提问作者Ian Jaylo Guinto
相关产品推荐
相关产品推荐

