尝试发送嵌入时抛出错误
Posted
技术标签:
【中文标题】尝试发送嵌入时抛出错误【英文标题】:Throwing an error when trying to send a embed 【发布时间】:2021-11-25 10:43:54 【问题描述】:我正在尝试使用 discord.js v12 创建嵌入,但它一直显示此错误
DiscordAPIError: 无法发送空消息
这是我的代码:
const infoembed = new MessageEmbed()
.setColor('#0099ff')
.setTitle(responce.asset.title)
umsg.channel.send( embeds: infoembed );
【问题讨论】:
【参考方案1】:如果 responce.asset.title
为空 - 您将收到错误消息,因为 discord 无法发送带有空标题的嵌入!但是您可以尝试使用此代码:
const infoembed = new MessageEmbed()
.setColor('#0099ff')
.setTitle(`** **`);
umsg.channel.send(infoembed)
【讨论】:
它实际起作用的有趣之处message.channel.send(infoembed)
不是发送嵌入的正确方式
这不是最好的方法,但如果它有效,我看不出有理由拒绝它,而你的代码仍然给他们一个错误
这不是编码方式:D 它不应该是“只要它以某种方式工作就可以”。特别是如果您是编程新手,了解代码并以正确的方式进行操作非常重要
@MegaMix_Craft 它可能在一种情况下工作,但不是另一种情况。一个例子是乘以 2。如果你有数字 2,你可以加 2。你得到了正确的结果,但是 得到它的方法是错误的。这不一定是 正确的 方式,但它显然不适用于任何其他数字,例如 6. 6*2 = 12 但 6+2 = 8。【参考方案2】:
如果您使用的是 discord.js v13,则必须将嵌入放入 数组:
const infoembed = new MessageEmbed()
.setColor('#0099ff')
.setTitle(responce.asset.title)
umsg.channel.send( embeds: [infoembed] );
如果您想在消息中添加一些文本内容,您只需添加字段content
:
const infoembed = new MessageEmbed()
.setColor('#0099ff')
.setTitle(responce.asset.title)
umsg.channel.send( content: 'Hello world!', embeds: [infoembed] );
由于您使用的是 discord.js v12,因此您必须删除 大括号 和 embeds
字段:
const infoembed = new MessageEmbed()
.setColor('#0099ff')
.setTitle(responce.asset.title)
umsg.channel.send(infoembed);
【讨论】:
umsg.channel.send( embeds: [infoembed] );仍然返回相同的错误responce
是您的实际变量还是拼写错误?
这是我的实际变量,对不起,我有阅读障碍
并且必须已经调试过responce.asset.title
来检查它是null
还是空?
尝试用.setTitle("Test")
替换.setTitle(responce.asset.title)
【参考方案3】:
机器人发送的所有消息现在最多支持 10 个嵌入。因此,embed
选项被移除并替换为embeds
数组,该数组必须在options
对象中。
umsg.channel.send( embeds: [infoembed] );
Read documentation
【讨论】:
umsg.channel.send( embeds: [infoembed] );仍然返回相同的错误以上是关于尝试发送嵌入时抛出错误的主要内容,如果未能解决你的问题,请参考以下文章
C# HttpClient.SendAsync 在测试某些 URL 时抛出“发送请求时发生错误”异常
Hadoop API 在尝试初始化集群以使用 DistCp 时抛出错误