You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js v13中messageCreate与interactionCreate事件无法触发如何解决

问题原因

Discord.js v13 及更高版本对网关权限做了更严格的限制,仅在代码中声明意图无法完全获取消息事件权限,还需要在机器人的开发者配置页开启对应特权权限。

解决步骤

  1. 修正代码的网关意图配置
    你当前代码仅声明了GUILDS这一个意图,要接收服务器内的消息必须补充GUILD_MESSAGES意图,修正后的客户端初始化代码如下:
const client = new Client({ 
  intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MESSAGES
  ] 
});

如果需要接收用户给机器人发送的私聊消息,可额外添加Intents.FLAGS.DIRECT_MESSAGES。

  1. 开启开发者后台的特权网关意图
    这是最容易被遗漏的配置项:
  • 打开你创建机器人的Discord开发者应用管理页,切换到「Bot」标签
  • 下拉到Privileged Gateway Intents(特权网关意图)区域
  • 打开Message Content Intent(消息内容意图)的开关并保存设置
    个人测试用途的机器人直接开启即可,如果你的机器人需要在100个以上的服务器运行,需要向Discord申请该权限的白名单。
  1. 校验频道权限
    确认对应服务器的频道没有单独屏蔽机器人的「查看频道」「读取消息历史记录」权限,即使机器人拥有管理员身份,频道单独设置的权限覆盖也会导致机器人无法获取消息。

完成以上配置后重启机器人,再次发送消息即可正常触发messageCreate事件。

内容的提问来源于stack exchange,提问作者Solean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:15:04