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

Discord.js v13 Sending a File Attachment via URL

Discord.js 发布了 v13,我正在尝试更新我的小自制软件 discordbot。

我遇到了无法再通过网络发送附件 (png) 的问题 URL。

Discord.jsv12

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

控制台没有出现任何错误(折旧警告除外):

并且机器人没有 return 图片:

我试过:

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()}`
        });

这给了我这个可怕的输出:

感谢您的帮助!

Discord.js 的更新指南:https://discordjs.guide/additional-info/changes-in-v13.html#sending-messages-embeds-files-etc

关于此事我只能找到其他问题:

发现问题,它与 URL (http://jegin.net/testchart2.php?sysid=268.png)

testchart2.php 部分有关

能够通过以下方式发送:

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'
  }]
})