【问题标题】:discordjs using base64 image in webhook embeddiscordjs 在 webhook 嵌入中使用 base64 图像
【发布时间】:2021-02-26 06:57:02
【问题描述】:

如何使用 webhook 将图像插入不和谐嵌入中。 我将图像保存为从数据库中获取的 base64 字符串。我试过这个但是 我只得到一个空嵌入

const data = b64image.split(',')[1]; 
const buf = new Buffer.from(data, 'base64');
const file = new Discord.MessageAttachment(buf, 'img.jpeg');

const embed = new Discord.MessageEmbed()
    .setImage('attachment://img.jpeg')

webhookClient.send('', {
    username: userName,
    embeds: [embed],
});

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    我尝试使用较小的图像,并且问题中的代码有效。所以这是请求大小的问题。 我通过设置一个快速路由来提供图像并使用嵌入中的 URL 来修复它

    router.get('/thumb/:imgId', (req, res) => {
        const imgId = req.params.imgId.toString().trim();
        let file = Buffer.from(b64Image.split(',')[1], 'base64')
        res.status(200);
        res.set('Content-Type', 'image/jpeg');
        res.set('Content-Length', file.length)
        res.send(file)
    });
    
    const embed = new Discord.MessageEmbed()
        .setImage(`${base_url}/img/thumb/${imgId}`)
        
    webhookClient.send('', {
        username: userName,
        embeds: [embed],
    });
    

    【讨论】:

      【解决方案2】:

      在此处输入代码希望尽快回复您。 Discord 添加了一个功能(或者我不知道它已经存在),它可以让你做你想做的事。

      const data = b64image.split(',')[1]; 
      const buf = new Buffer.from(data, 'base64');
      const file = new Discord.MessageAttachment(buf, 'img.jpeg');
      
      const embed = new Discord.MessageEmbed()
          .attachFiles(file)
          .setImage('attachment://img.jpeg')
      
      webhookClient.send('', {
          username: userName,
          embeds: [embed],
      });
      

      【讨论】:

        猜你喜欢
        • 2010-11-15
        • 2022-08-03
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-27
        • 1970-01-01
        • 2014-02-16
        相关资源
        最近更新 更多