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

discord.js发送MessageEmbed触发MESSAGE_CONTENT_TYPE错误求助

报错原因

discord.js 中content字段仅接受非空字符串类型的纯文本消息内容,你当前代码把MessageEmbed实例直接传给了content字段,触发了参数类型校验,才会抛出Message content must be a non-empty string的错误。
你之前尝试把Embed实例转成字符串传入的方案不可行——这种写法只会把对象转字符串的结果当成普通文本发送,根本无法渲染出嵌入卡片样式,自然解决不了问题。

修复方案

富媒体嵌入内容不能放在content字段里,需要单独传入embeds数组字段,不需要附带普通文本的话可以直接省略content字段。
修复后的代码如下:

client.on('messageCreate', (message) => {
  const testEmbed = new DiscordJS.MessageEmbed().setTitle('Topic')
  if (message.content === '%topic') {
    message.reply({
      embeds: [testEmbed]
      // 如需同时发送普通文本,可添加content字段,值必须为字符串,例:content: '今日话题:'
    })
  }
})
日常排查注意点
  • 所有结构化富内容(Embed嵌入、Attachment附件等)都不能直接赋值给content字段
  • 嵌入内容统一放在embeds数组中传递,单条消息最多支持传入10个嵌入对象
  • 如果你使用v14版本discord.js,MessageEmbed已更名为EmbedBuilder,需要从包中对应导入构造,参数传递规则不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 09:36:27