Discord Bot无法登录服务器,报CLIENT_MISSING_INTENTS错误如何解决?
问题原因
这个错误由discord.js v13及以上版本的强制校验导致:新版本要求初始化Client实例时必须显式指定Bot需要用到的网关意图(Intents),用于限定Bot可以接收的事件和数据范围,你当前的代码未传入该配置项因此触发报错。
修复方案
将你的代码替换为以下内容即可:
const { Client, IntentsBitField } = require('discord.js'); const client = new Client({ intents: [ // 基础必选Intent,用于访问服务器基础信息 IntentsBitField.Flags.Guilds, // 如需接收服务器内消息,添加以下项 IntentsBitField.Flags.GuildMessages, // 如需读取消息内容做回复等处理,添加以下项 IntentsBitField.Flags.MessageContent ] }); client.once('ready', () => { console.log('Tec Control Bot is online!'); }); client.login('redacted sign in key');
如果你使用的是discord.js v13版本,将上述代码的IntentsBitField替换为Intents即可正常运行。
额外注意事项
- 可根据你的Bot功能需求增删intents列表里的标识项,不需要的权限不要额外添加,避免不必要的校验失败。
MessageContent、GuildMembers、GuildPresences属于特权Intent,除了代码中声明外,还需要进入Discord开发者平台的对应Bot管理页,在特权网关意图板块开启对应开关,否则会继续触发权限报错。
内容的提问来源于stack exchange,提问作者Vexel
相关产品推荐
相关产品推荐

