运行discord.js机器人代码报BITFIELD_INVALID位域错误如何解决?
错误原因
你在初始化Discord.Client时传入的intents数组中填写的BOT不是discord.js认可的合法网关意图值,触发了位域参数校验失败,所以抛出该报错。
修复方法
discord.js v14及以上版本需要从GatewayIntentBits枚举中选择你需要的机器人权限,基础运行可参考以下配置:
const Discord = require('discord.js'); const client = new Discord.Client({ intents: [ Discord.GatewayIntentBits.Guilds, // 基础服务器权限,必选 Discord.GatewayIntentBits.GuildMessages, // 接收服务器消息权限 Discord.GatewayIntentBits.MessageContent // 读取消息内容权限 ] }) const Token = "censor"; client.once('ready', () => { console.log('Agres is online!'); }); client.login(Token);
补充说明
- 可根据你的机器人实际功能需求增减intents里的权限项,全部可用权限可查看discord.js对应版本的官方类型定义
- 如果你需要使用
MessageContent权限,需要先登录Discord开发者后台,在对应机器人的设置页开启「Message Content Intent」开关,否则运行后仍会触发权限相关报错
内容的提问来源于stack exchange,提问作者umurew
相关产品推荐
相关产品推荐

