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

Discord.js更新后消息发送时message与interactionCreate事件不触发如何解决

Discord.js v13+ 消息/交互事件未触发排查方案

1. 基础版本与网关配置校验

  • 确认当前使用的Discord.js版本:v13及以上版本已废弃message事件,接收普通消息必须监听messageCreate事件,原message事件不会再被触发。
  • 校验Client实例化时的网关意图(Intents)配置,v13之后该配置为强制必填项,缺失对应意图将直接导致对应事件无法触发:
    • 接收普通消息需要开启Guilds、GuildMessages、MessageContent三个意图
    • 接收交互类事件(斜杠指令、按钮、选择菜单等)至少需要开启Guilds意图
      配置示例如下:
    const { Client, GatewayIntentBits } = require('discord.js');
    const client = new Client({
      intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent
      ]
    });
    
  • 检查Discord开发者后台的机器人设置页,在「Privileged Gateway Intents」板块是否开启了Message Content Intent特权权限,该权限为接收用户消息内容的必要配置,未开启即使代码配置了对应意图也无法接收消息。

2. 事件监听代码校验

  • 普通消息监听必须使用client.on('messageCreate', msg => {})写法。
  • interactionCreate事件仅会在用户触发交互行为时触发,普通消息发送不会触发该事件。如果是测试斜杠指令,需要先确认指令已经正确注册到对应服务器或全局,全局指令注册后最长需要1小时同步生效,测试阶段建议优先注册为服务器级指令,注册完成后即可立即使用。
  • 确认所有事件监听代码的执行时机在client.login(TOKEN)之前,登录完成后再绑定的事件不会生效。

3. 权限与准入校验

  • 确认机器人已经被邀请至目标服务器,且邀请时勾选了「查看频道/读取消息」「发送消息」「使用应用指令」必要权限。
  • 确认目标频道的权限设置没有禁止机器人查看频道、发送消息、使用斜杠指令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:57:03