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

如何以最简方式实现Discord Bot发送消息?代码调试无效求助

最简方式实现Discord Bot发送消息

你之前代码的问题

第一段代码的问题

  • Discord.js v14+已废弃message事件,改用messageCreate
  • 缺少GatewayIntentBits.MessageContent意图,无法读取消息内容,导致回复逻辑无法触发
  • GuildMessageTyping意图和消息回复无关,属于冗余配置

第二段代码的问题

仅完成了Bot客户端初始化,缺少登录逻辑、事件监听(如ready、messageCreate),完全无法运行

最简实现步骤

1. 安装依赖

在项目目录执行:

npm install discord.js dotenv

2. 配置Bot权限

  • 登录Discord开发者平台,进入你的Bot应用,在「Privileged Gateway Intents」下开启Message Content Intent
  • 邀请Bot到服务器时,确保勾选Send Messages权限

3. 最简代码示例

创建.env文件,填入你的Bot令牌:

TOKEN=你的Bot令牌

创建index.js文件,写入以下代码:

require("dotenv").config();
const { Client, GatewayIntentBits } = require('discord.js');

// 初始化客户端,只保留必要的意图
const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent
    ]
});

// Bot上线提示
client.once("ready", () => {
    console.log("Bot已上线!");
});

// 监听消息创建事件,实现回复逻辑
client.on("messageCreate", (message) => {
    // 避免Bot回复自己的消息
    if (message.author.bot) return;
    
    // 检测消息内容,发送回复
    if (message.content.toLowerCase() === 'hello') {
        message.channel.send(`Hello: ${message.author.username}`);
    }
});

// 登录Bot
client.login(process.env.TOKEN);

4. 运行Bot

执行命令启动:

node index.js

关键说明

  • 仅保留必要意图:Guilds是服务器功能基础,GuildMessages允许监听服务器消息,MessageContent允许读取消息文本内容,这三个是实现消息回复的核心
  • 使用messageCreate事件替代旧的message事件,这是Discord.js v14+的标准用法
  • 增加if (message.author.bot) return避免Bot无限自回复

内容的提问来源于stack exchange,提问作者monkie-dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:27:45