Discord机器人仅能识别自身无法统计其他服务器成员状态如何解决
Discord机器人无法识别服务器成员/成员状态问题修复方案
该问题由Discord网关权限限制导致,Discord v8及以上版本默认关闭成员列表、成员状态的读取权限,仅允许机器人获取自身信息,需要手动开启对应权限才能正常拉取数据,修复步骤如下:
1. 代码中声明启用所需意图
初始化机器人客户端时,显式开启成员、状态相关的意图配置,修改后的初始化代码参考:
import discord from discord.ext import commands # 初始化意图配置 intents = discord.Intents.default() # 开启服务器成员读取意图 intents.members = True # 开启成员在线状态读取意图 intents.presences = True # 初始化机器人时传入意图参数,替换为你自己的命令前缀 client = commands.Bot(command_prefix='!', intents=intents)
你原有stats命令的逻辑无需修改,保留即可。
2. Discord开发者后台开启特权网关开关
需要在Discord开发者平台给对应机器人开启特权权限:
- 进入Discord开发者门户,打开你当前开发的机器人应用页
- 点击左侧菜单的「Bot」选项,下滑到
Privileged Gateway Intents区域 - 分别打开
SERVER MEMBERS INTENT、PRESENCE INTENT两个开关 - 保存设置后重启机器人即可生效
注:如果你的机器人加入的服务器数量超过100个,需要向Discord提交特权意图验证申请才能开启上述开关,个人自用的小型机器人无需验证即可直接开启。
内容的提问来源于stack exchange,提问作者vazzza
相关产品推荐
相关产品推荐

