【问题标题】:I got error while getting all the list of members from guild从公会获取所有成员列表时出错
【发布时间】:2020-11-23 13:44:23
【问题描述】:

我使用async for member in guild.fetch_members(limit=None): 来获取所选公会的所有成员,并且我已经尝试将机器人的权限设置为管理员和所有人的顶部,但仍然存在同样的问题。我想从一个公会中获取所有成员的 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

【问题讨论】:

  • 您需要在 Discord 开发者门户上和通过脚本启用成员意图

标签: python python-3.x discord.py discord.py-rewrite


【解决方案1】:

如果您有guild 对象,您可以通过此代码获取特定公会中的所有成员id

member_id_list = [ member.id for member in guild.members ]

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

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

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

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

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

【讨论】:

    【解决方案2】:

    你的代码似乎有问题,你可以试试这个:

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

    【讨论】:

    • 如果您知道不和谐的变化,您就会知道您必须提供使用这些功能的意图。 discord.errors.Forbidden: 403 Forbidden 应该告诉您请求不允许发生,因此这不是代码问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 2019-12-29
    • 1970-01-01
    • 2021-12-03
    • 2015-06-04
    • 2018-09-16
    • 2020-11-21
    相关资源
    最近更新 更多