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

使用discord.js开发Discord bot 私信自动回复功能失效如何解决

Discord.js 私信自动回复功能修复方案

你原有代码无效主要是版本适配、配置缺失的问题,按以下步骤修改即可:

1. 版本适配注意事项

当前discord.js v13及以上的主流版本,已经废弃了message事件,替换为messageCreate事件,同时要求显式声明网关意图才能接收对应消息。

2. 客户端初始化添加必要配置

创建客户端实例时,需要添加私信相关的意图和partial配置,同时要先前往Discord开发者后台的Bot管理页,在「Privileged Gateway Intents」分区开启Message Content Intent开关,否则无法读取消息内容。

const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.DirectMessages, // 接收私信消息的必要意图
    GatewayIntentBits.MessageContent // 读取消息内容的特权意图
  ],
  partials: [
    'Channel' // 私信频道属于partial类型,必须添加该配置才能正常识别
  ]
});

3. 修正事件监听代码

client.on('messageCreate', async msg => {
  // 过滤Bot自身发送的消息,避免触发死循环
  if (msg.author.bot) return;
  // 判断当前频道是否为私信频道
  if (msg.channel.isDMBased()) {
    await msg.reply('抱歉,您无法向我发送私信,请改用工单系统提交需求');
  }
});

额外说明

如果你使用的是v12及更早的旧版discord.js,可保留原message事件,但仍需配置对应的私信意图,官方已停止维护旧版本,建议升级到最新稳定版使用。

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

相关产品推荐
方舟 Agent Plan

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

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