我的代码:
client.on('message', message => {
if (message.content.startsWith(prefix + "birb")) {
const embed = new Discord.RichEmbed()
.setColor(0x9370db)
.setAuthor("ModularBot: Birb", "https://i.imgur.com/Y9HlaCp.png")
.setImage("https://random.birb.pw/tweet/random")
.setFooter("Powered by random.birb.pw")
.setTimestamp()
message.channel.send({embed})
}
});
每当我这样做时,图像只显示为空白而没有任何内容
答案 0 :(得分:1)
Discord要求您发送实际文件,而不仅仅是文件中的URL。因此,在setImage行中,您需要发送文件的直接链接,例如https://random.birb.pw/tweet/random/1.png,或者调用文件名。
答案 1 :(得分:0)
Discord似乎要求图像链接以图像文件扩展名作为后缀。我只是自己测试过.png
,但是如果没有文件扩展名,Discord会认为该网址不正确,并会忽略该网址以节省计算时间和空间,因为它们的服务器会保留发送的每个图像的本地副本。 / p>
答案 2 :(得分:0)
就像先前的答复所说,Discord需要一个图像文件。您可以使用snekfetch或superagent从API提取图像,然后发送文件。
答案 3 :(得分:0)
刚发现一件事。即使您成功创建了一个REST API,当任何人ping API时都可以输出文件,这就是我所做的, Discord将不接受非DNS服务器提供的任何图像。因此,您可以从具有DNS名称(例如https://api.twitter.com/)的网站放置图像,但不能放置任何IP,而不是您自己或任何人的IP。
答案 4 :(得分:0)
我通过在所有图片网址中添加 www 解决了这个问题。
也许是我的服务器有问题? 我的应用是 React with next.js,托管在 Vercel。