discord.py无法获取Discord服务器全部成员列表仅返回自身名称如何解决
Discord机器人无法拉取全服务器成员问题修复方案
这个问题的核心原因是未开启Discord的服务器成员敏感权限意图,Discord出于用户隐私保护限制,未授权的机器人仅能读取到自身的成员信息,无法拉取服务器其他用户数据。修复分为两个步骤:
步骤1:开启Discord开发者后台权限开关
- 进入Discord开发者门户的对应机器人应用管理页
- 左侧菜单选择「Bot」分类,下滑找到Privileged Gateway Intents(特权网关意图)板块
- 打开Server Members Intent对应的开关,如需读取用户在线状态也可同步开启Presence Intent
步骤2:修改代码初始化配置,声明使用的权限意图
你需要在初始化机器人对象的代码部分,新增意图声明配置,示例如下:
import discord from discord.ext import commands # 加载默认意图配置,额外开启成员读取权限 intents = discord.Intents.default() intents.members = True # 初始化机器人时传入intents参数,替换你原来的bot初始化代码即可 bot = commands.Bot(command_prefix='你的命令前缀', intents=intents)
你原有写的on_ready事件代码无需修改,重新启动机器人即可正常打印所有服务器的全部成员用户名。
内容的提问来源于stack exchange,提问作者EpicMate
相关产品推荐
相关产品推荐

