discord bot 在使用收集器时不发送收集到的图像 URL

discord bot is not sending image of collected URL while using collector

我正在尝试在特定频道中简单地粘贴一个 link,然后等待机器人再次发送消息。

在这个例子中我应该得到:

hello image

但我只是打招呼,我什至尝试了一些不同的方法,比如改变

message.channel.send(`hello,${m.content}`)

输出带有 URL 和图像,但我不需要 URL 我只需要图像和文本。

这是我的部分代码。

const collector = message.channel.createMessageCollector({
    filter,
    max : 1 , 
    time: 15000});

collector.on('collect', m => {
                                console.log(`Collected ${m.content}`);
                            });
collector.on('end', collected => {
    console.log(`Collected ${collected.size} items`);
    message.channel.send("hello",{files: collected.map(msg => msg.content)})

});

您正在尝试将字符串发送到文件中。那是不可能的。如果你不想看到所有收集的消息,你可以使用;

message.channel.send(`Hello: ${collected.map(msg => msg.content).join(",")}`)

如果我理解你想要的,这会起作用。

这就是你获取文本的方式,我在 post 之后看到了你的图片请求。如果 url 在消息中,您可以通过以下方式获取所收集消息的图像 collected.content 将再次发送照片,不需要执行其他操作,但如果有人 post 的照片来自图库,请按然后你需要上传按钮;

collector.on("end", async collected => 
{
let attachments = []
collected.forEach(msg => attachments.push(msg.attachments.first().url))
await message.channel.send({content: "Hello", files: attachments})

})

只需要使用MessageAttachment,无需link即可发送图片。

const { MessageAttachment } = require('discord.js')

//collector
const collector = message.channel.createMessageCollector({
    filter,
    max : 1 , 
    time: 15000});

collector.on('collect', m => {
const attachment = new MessageAttachment('https://i.imgur.com/XATplyx.jpeg')// your URL
message.channel.send({ content: "Hello", files: [attachment] })
                                console.log(`Collected ${m.content}`);
                     });

collector.on('end', collected => {
    console.log(`Collected ${collected.size} items`);
});