如何修复discord.js运行时出现的token相关报错问题
问题定位与修复方案
报错原因
你遇到的报错是discord.js v14及以上版本的必填参数缺失问题:v14版本开始要求初始化Client实例时必须明确配置网关意图(Intents),缺少该配置会导致客户端内部属性初始化异常,进而触发你遇到的token相关内部报错。
修复步骤
- 首先确认本地安装的discord.js版本,运行如下命令校验:
npm list discord.js
只要返回的版本号为14.x.x及以上,都需要按照下方方式修改代码。 - 修改代码,引入IntentsBitField并配置所需意图:
const { Client, IntentsBitField } = require('discord.js'); const client = new Client({ intents: [ // 服务器基础访问权限,必选 IntentsBitField.Flags.Guilds, // 接收服务器消息权限,有消息交互需求可加 IntentsBitField.Flags.GuildMessages, // 读取消息内容权限,需要解析消息内容必加 IntentsBitField.Flags.MessageContent // 可根据你的机器人实际功能需求新增其他意图 ] }); client.once('ready', () => { console.log('The bot is online.'); }); // 替换为你在Discord开发者后台获取的实际机器人令牌 client.login('TOKEN');
- 额外注意:如果你用到了
MessageContent、GuildMembers这类特权意图,需要先进入Discord开发者平台对应的机器人设置页,在「Privileged Gateway Intents」分类下开启对应开关,否则功能无法正常生效。
内容的提问来源于stack exchange,提问作者Trazy
相关产品推荐
相关产品推荐

