我正在制作一个带有discord.js
和node.js
的 Discord 机器人。我正在尝试发出两个命令,一个purr
命令和一个woof
命令。我正在使用node-fetch
从网络上获取图像并将它们发布到 discord。这是我的代码:
else if (command === 'purr') {
const fetch = require('node-fetch');
fetch('https://aws.random.cat/meow').then(response => response.json());
const { file } = await fetch('https://aws.random.cat/meow').then(response => response.json());
const catEmbed = new Discord.MessageEmbed()
.setColor('#fbfb76')
.setTitle('Purr...')
.setImage(file)
.setFooter('Over 1000 free cat pics thanks to aws.random.cat :)');
message.channel.send(catEmbed);
}
else if (command === 'woof') {
const fetch = require('node-fetch');
fetch('https://dog.ceo/api/breeds/image/random').then(response => response.json());
const { file } = await fetch('https://dog.ceo/api/breeds/image/random').then(response => response.json());
message.channel.send(file);
}
purr
命令有效。呜呜��嗯,不是真的。它输出此错误:
DiscordAPIError: Cannot send an empty message
指示它无法从dog.ceo/api/breeds/image/random
中获取。由于它适用于purr
命令,但不适用于woof
命令,有人可以告诉我问题并建议如何解决它吗?谢谢。
那是因为https://aws.random.cat/meow
返回一个file
变量。但是,https://dog.ceo/api/breeds/image/random
返回一个message
变量。请改用这个:
const { message } = await fetch('https://dog.ceo/api/breeds/image/random').then(response => response.json());