为Discord RichEmbed中的每个字段添加图像

时间:2020-02-07 11:17:07

标签: discord.js

我正在使用不和谐的webhook在我的频道上发送一些自动的计划邮件。我想在嵌入中使用的每个字段中添加一些图像。我当前的设置如下:

hook.login(configs.TEST_WEBHOOK_ID, configs.TEST_WEBHOOK_TOKEN);
Embed.setTitle('MY TITLE HERE');

const fields = [];
    for(const item of data) {
        fields.push({
            name: item.title,
            value: item.detail,
            image: {
                url: `${item.imgsrc}`
            }
        });
    }
Embed.fields = fields;
hook.setPayload(hookcord.DiscordJS(Embed));

您可以看到我在字段对象上添加了image属性(这不起作用)。最好的方法是什么?这些图像仅是链接,可以从Web服务器获得。谢谢

编辑

我正在使用hookcord软件包来设置挂钩和discord.js软件包。

2 个答案:

答案 0 :(得分:1)

Discord在 1 嵌入消息中仅提供 2张图片

它的方法.setImage('url').setThumbnail('url'),因此无法将图像添加到每个字段。

嵌入字段只有3个字段:名称-字符串,值-字符串,内联-boolevan。
RichEmbed / Embed Visualizer

答案 1 :(得分:0)

好吧,正如@Cipher所指出的,确实没有办法在字段内添加图像。相反,我求助于创建多个嵌入而不是一个。每个嵌入都可以使用两个图片网址;一个用于缩略图,另一个用于横幅。我将数据结构化为多个嵌入,并通过消息发送它们。请注意,每封邮件的限制为10个嵌入,您可能需要相应地进行调整。

以下是添加为嵌入的代码段:

for(let send = 0; send < data.length; send += 10) {
            let tosend;
            // size the embeds to max 10
            if((data.length - send) < EMBEDS_PER_MSG) {
                tosend = data.slice(send, data.length);
            }
            else {
                tosend = data.slice(send, EMBEDS_PER_MSG);
            }
            const embeds = [];
            for(const item of tosend) {
                embeds.push({
                    title: item.title,
                    url: item.link,
                    fields: [
                        {
                            name: 'Description',
                            value: item.detail
                        }
                    ],
                    thumbnail: {
                        url: item.imgsrc
                    },
                    image: {
                        url: item.imgsrc
                    },
                    footer: {
                        text: 'Footer Text'
                    }
                });
            }
            hook.setPayload({ embeds: embeds });
}