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

discord.js v12.5.3 发送Embed消息无报错却不生效问题求助

问题定位

  • 核心错误:未声明channel变量,代码中直接调用channel.send()属于无效调用,正确的发送目标应为触发指令的当前频道message.channel
  • 次要问题:setThumbnail传入的是Imgur图集页面链接,不是可直接加载的图片资源直链,会导致缩略图加载失败,不影响Embed发送但会出现裂图
  • 补充优化:你已经通过解构导入了MessageEmbed,无需再从Discord对象下调用该类

修复后代码

const { MessageEmbed, Client } = require('discord.js')
const client = new Client();

client.on('message', async (message) => {
    // 排除机器人自身消息,避免循环触发
    if (message.author.bot) return;
    if (message.content.toLowerCase() === 'ip') {
        const embed = new MessageEmbed()
          .setColor('#000000')
          .setTitle('Région Loxydienne')
          .setAuthor('Rayden')
          .addFields(
            { name: '**IP**', value: 'DaddyTermi.aternos.me' },
            { name: '**VERSION**', value: 'MC 1.17.1' },
            { name: '**IP DYNAMIQUE**', value: 'Demande à Tormi' }
          )
          .setTimestamp()
          .setImage('https://img.wallpapersafari.com/desktop/1680/1050/6/72/8xbBhw.jpg')
          .setDescription('bon toutou!')
          // 此处替换为后缀为.jpg/.png的图片直链即可正常显示缩略图
          .setThumbnail('替换为实际图片直链')
        
        // 修正频道调用逻辑,新增异常捕获方便排查问题
        message.channel.send(embed).catch(err => console.log(err))
    }
}) 

// 填入你的机器人令牌启动
client.login('你的机器人Token')

额外检查项

  • 确认机器人在对应服务器拥有发送消息、嵌入链接权限,缺少嵌入链接权限会导致Embed无法发送
  • 确认你已经在代码末尾调用client.login()传入正确的机器人令牌
  • 若仍有问题可通过上述代码中新增的catch块打印异常信息定位问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:36:05