与嵌入分开发送附件的 Djs 交互

Posted

技术标签:

【中文标题】与嵌入分开发送附件的 Djs 交互【英文标题】:Djs interaction sending attachment separately from embed 【发布时间】:2021-12-01 23:50:09 【问题描述】:

我试图让我的消息看起来像this,但由于interaction.reply,我得到了this。

这是我的代码:

fs.readdir("./pics", (error, files) => 
if (error) return console.log(error)
const num = (Math.floor(Math.random() * files.length)+1).toString();

const imagembed = new Discord.MessageEmbed()
.setTitle("Some cute pic for you!")
.setColor("#980002")
.setFooter("Requested by " + interaction.member.user.tag);
interaction.reply( embeds: [imagembed], files: [`./pics/$num.jpg`])
)

有什么解决办法吗?

【问题讨论】:

【参考方案1】:

将图像附加到嵌入中

可以使用MessageEmbed.setImage() 在嵌入中附加图像。这需要一个有效的图片链接。

附加本地图片

由于MessageEmbed.setImage() 是唯一的方法,要将图像附加到嵌入,您必须使用一些技巧。您必须将图像作为文件发送到您的MessagePayload 并将其添加到嵌入中。

const embed = new discord.MessageEmbed().setImage("attachment://image.png");
interaction.reply( embeds: [embed ], files: [`./path/to/image.png`] );

解决您的问题

对你来说,这将导致以下代码:

fs.readdir("./pics", (error, files) => 
  if (error) return console.log(error)
  const num = (Math.floor(Math.random() * files.length) + 1).toString();

  const imagembed = new Discord.MessageEmbed()
    .setTitle("Some cute pic for you!")
    .setColor("#980002")
    .setFooter("Requested by " + interaction.member.user.tag)
    .setImage(`attachment://$num.jpg`);
  interaction.reply( embeds: [imagembed], files: [`./pics/$num.jpg`] )
)

【讨论】:

以上是关于与嵌入分开发送附件的 Djs 交互的主要内容,如果未能解决你的问题,请参考以下文章

Python:多部分 html 电子邮件通过嵌入式图像和附件发送

如何使用嵌入discord.net webhook c#发送文件附件

python 使用嵌入的附件和图像以HTML格式发送电子邮件。

python [Python]发送包含嵌入式图像和应用程序附件的电子邮件

如何访问嵌入式附件?

如何使用 Outlook 2010(无 smtp)和 python 发送带有嵌入图像(不是附件)的 HTML 格式电子邮件