如何获取邮件中附件的URL

How to get the URL of an attachment in a message

我正在尝试获取邮件中任何附件的 URL。我似乎无法找到一种方法来做到这一点:每当我尝试 运行 console.log(message.attachments.url) 时,它只会输出 undefined。我做错了什么?

我已经尝试阅读文档和其他 Stack Overflow 问题,但没有任何效果。

我希望输出是附件的 URL,即 'https://cdn.discordapp.com/attachments/serverid/channelid/file.png' 然而,它只输出 undefined.

message.attachments 是一个 Collection(具有附加实用功能的地图),因此您要么必须通过 message.attachments.get('ID') 获取特定附件,要么您确定该消息仅包含您可以使用一个附件 message.attachments.first()。否则,您必须通过

遍历 Collection
message.attachments.forEach(attachment => {
  // do something with the attachment
  const url = attachment.url;
});

我链接到 Discord.js 的 Collection 文档。您还可以访问典型的 Map 函数。