Discord.js升级至v15后出现[DISALLOWED_INTENTS]报错求助
解决Discord.js的Error [DISALLOWED_INTENTS]报错问题
这个报错是因为你使用了Discord的特权网关意图,但这些意图既没有在Discord开发者后台启用,也未通过白名单审核。Discord.js v15对意图权限的校验比v9严格得多,升级版本本身不会自动解决权限配置问题,需按以下两步操作:
1. 在Discord开发者后台启用特权意图
- 打开Discord开发者门户,找到你的Bot应用
- 切换到「Bot」标签页
- 滚动到「Privileged Gateway Intents」板块,根据Bot功能开启对应意图:
Presence Intent:用于获取用户在线状态Server Members Intent:用于获取服务器成员列表Message Content Intent:v14+版本必须开启才能读取消息内容
- 点击保存更改
2. 在代码中正确声明意图
Discord.js v15需要显式声明所需的网关意图,示例代码如下:
const { Client, GatewayIntentBits } = require('discord.js'); // 初始化客户端并声明需要的意图 const client = new Client({ intents: [ GatewayIntentBits.Guilds, // 基础服务器管理意图,必选 GatewayIntentBits.GuildMembers, // 对应后台的Server Members Intent GatewayIntentBits.GuildPresences, // 对应后台的Presence Intent GatewayIntentBits.MessageContent, // 对应后台的Message Content Intent // 按需添加其他非特权意图,比如GuildMessages、DirectMessages等 ] }); client.login('你的Bot令牌');
注意事项
- 若Bot加入服务器数超过100,需向Discord提交特权意图白名单申请;测试用Bot(服务器数<100)直接开启后台开关即可
- 只声明Bot实际需要的意图,避免权限过度申请
内容的提问来源于stack exchange,提问作者Windows 20
相关产品推荐
相关产品推荐

