discord python:guild.members 只返回 bot 但没有成员

Ant*_*rvy 3 discord.py

试图用 python 制作一个不和谐的机器人。

在不和谐的开发人员界面中,在我的机器人面板上,选中了“特权网关意图”(服务器成员意图)。

Bot 位于具有管理员权限的服务器(公会)上。

            for guild in self.discord_client.guilds:
                print(f"guild found : {guild}")
                print(guild.members)
            for member in guild.members:
                print(member)
Run Code Online (Sandbox Code Playgroud)

不明白为什么机器人只返回他,但没有找到我或我的朋友。

返回

guild found : Testdev

[<Member id=76277237853886878X name='Dev_Bot' discriminator='6271' bot=True nick=None guild=<Guild id=76114559936167936X name='Testdev' shard_id=None chunked=False member_count=3>>]
Run Code Online (Sandbox Code Playgroud)

成员数=3,但之后

       for member in list(guild.members):
           print(member)
Run Code Online (Sandbox Code Playgroud)

只返回

Dev_Bot#6271
Run Code Online (Sandbox Code Playgroud)

你能帮我吗 ?谢谢

the*_*heX 5

我找到的唯一有用的答案是在这里:

Discord Bot 只能看到自己,不能看到公会中的其他用户

基本上,它说你必须设置intents才能看到公会的成员。

因此,client = discord.Client()您不仅需要执行以下操作,还必须执行以下操作:

...

intents = discord.Intents.all()
client = discord.Client(intents=intents)

...
Run Code Online (Sandbox Code Playgroud)

或者

intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)
Run Code Online (Sandbox Code Playgroud)

如果你只想有那个意图