从公会获取所有成员列表时出错

I got error while getting all the list of members from guild

我使用 async for member in guild.fetch_members(limit=None): 从所选公会中获取所有成员,并且我已经尝试将 bot 的权限设置为管理员和所有人,但仍然存在同样的问题。我想获取单个公会的所有成员ID列表。

Traceback (most recent call last):
  File "discord\client.py", line 312, in _run_event
  File "Stock.py", line 85, in on_message
  File "discord\iterators.py", line 86, in __anext__
  File "discord\iterators.py", line 605, in next
  File "discord\iterators.py", line 627, in fill_members
  File "discord\http.py", line 241, in request
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access

如果你有 guild 对象你可以通过此代码

获取特定公会中的所有成员 id
member_id_list = [ member.id for member in guild.members ]

我使用 guild.members 获取公会中的所有成员对象并遍历它,并将每个成员 ID 保存在 member_id_list 列表中。阅读文档以获取更多信息!

注意:确保您在 discord 开发者门户中启用了 SERVER MEMBERS INTENT!并将其添加到您的代码中!

intents = discord.Intents.default()
intents.members = True

client = commands.Bot(command_prefix='&',intents = intents)

因为没有它,您的机器人无法获取公会中的所有成员!

你的代码好像有问题,你可以试试这个:

member_ids = []
for member in guild.members:
    member_ids.append(member.id)