如何在 discord.js 13 嵌入中为我的描述字段设置 URL?

How can I set a URL for my description field in discord.js 13 embed?

我想制作一个包含带有 URL 描述的嵌入 它。但我收到一个错误:

RangeError [EMBED_DESCRIPTION]: MessageEmbed description must be a string.

我的代码:

player.on('trackAdd', (queue, track) => {
    const embed = new MessageEmbed()    
    .setTitle('Queued')
    .setDescription({text:`${track.title}`, URL: (`${track.url}`) })
    
    queue.metadata.send({embeds: [embed]});
});

我正在使用 discord.js v13 和 node.js v16

根据discord.js guide,您可以使用embed.setURL('https://somedomain.tld')来实现您想要的。

设置嵌入描述时,没有任何 属性 设置 URL。您可以使用模板文字将其手动添加为字符串的一部分:

.setDescription(`${track.title}: ${track.url}`)

编辑: 您可以在嵌入中使用 .setURL() 属性 来设置 URL 但它会出现在标题中而不是描述中。我在下面给出了一个例子:

代码:

const embed = new MessageEmbed()
  .setTitle("test title")
  .setURL("http://youtube.com");
message.channel.send({
  embeds: [embed]
});

结果:

您需要向 setDescription 提供一个字符串,它不会接受对象。

您可以使用 Markdown 语法 create a link 不过:

.setDescription(`[${track.text}](${track.url})`)

它将显示 link,其中 URL 是 track.url,link 是 track.text