Discord.js v13 如何通过URL发送文件附件

5

Discord.js发布了v13版本,我正在尝试更新我的自制Discord机器人。

我遇到了一个问题,就是无法再通过Web URL发送附带的png文件。

这个问题发生在Discord.js v12版本中。

var testchart = `http://jegin.net/testchart2.php?sysid=268.png`;
message.channel.send("Last updated " + updatedAt.fromNow(), {
             files: [{
                attachment: testchart,
                name: 'file.png'
                }]

没有在控制台中出现错误(除了一个警告): 没有在控制台中出现错误 并且机器人没有返回图像: 没有图像 我尝试过:
message.channel.send("Last updated " + updatedAt.fromNow(), {
             files: [testchart]

并且

message.channel.send("Last updated " + updatedAt.fromNow(), {
             files: Array.from(testchart)
        });

最后,
message.channel.send({
             files: [testchart],
             content: `Last updated ${updatedAt.fromNow()}`
        });

这给了我这个可怕的输出: enter image description here 谢谢您的帮助!
Discord.js更新指南:https://discordjs.guide/additional-info/changes-in-v13.html#sending-messages-embeds-files-etc 在此问题上,我只找到了另一个问题:Discord.js V13 sending message attachments

在左下角,您可以看到它显示为“testchart2.php”。 - MrMythical
2个回答

3
我找到了问题所在,与URL的testchart2.php部分有关 (http://jegin.net/testchart2.php?sysid=268.png)。
使用以下命令成功发送:
message.channel.send({
    files: [{
        attachment: testchart,
        name: 'chart.png'
    }],
    content:`Last updated ${updatedAt.fromNow()}`,
});

基本上,只需将v12的内容部分移到自己的区域即可。效果非常好。


1
你的第一次尝试接近,但并不完全正确。你只需要将它们合并在一起(现在发送消息只需要一个参数),你就会得到一个 png 文件(因为你指定了文件名),以及它的内容:
var testchart = `http://jegin.net/testchart2.php?sysid=268.png`;
message.channel.send({
  content: "Last updated " + updatedAt.fromNow(),
  files: [{
    attachment: testchart,
    name: 'file.png'
  }]
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接