我试图添加一个功能来生成随机模因到我的Discord bot运行在Heroku上,但每次我尝试运行它,它只是给我这个错误:FetchError: invalid json response body at https://some-random-api.ml/meme reason: Unexpected token < in JSON at position 0
。我想知道Heroku有没有类似的东西?如果没有,是我的代码有问题(张贴在下面):
const memes = require("random-memes");
const { randomHexColor } = require('../admin/colorgen.js');
module.exports = {
name: 'meme',
description: 'Never mind what the description is!',
async execute(message, args, Discord, Client, bot) {
memes.random().then(meme => {
const newEmbed = new Discord.MessageEmbed()
.setColor(randomHexColor())
.setTitle(meme.caption)
// .setURL(meme.image)
.setDescription(`category: ${meme.category}`)
.setImage(meme.image);
message.channel.send({ embeds: [newEmbed] });
})
}
}
API可能刚刚关闭,我以前遇到过同样的错误。在.then(... => { ... })
之后尝试使用.catch
来处理错误并可能进行调试。
memes.random().then(meme => {
console.log(meme)
}).catch(err => {
console.log(err)
});
如果你仍然得到一个错误与NPM包,尝试只是发送一个节点获取请求https://some-random-api.ml/meme
这是random-memes
使用的API(源代码)。
const fetch = require('node-fetch');
const response = await fetch('https://some-random-api.ml/meme');
const data = await response.json();
console.log(data);
data应该返回类似
的内容{
"id": number,
"image": string,
"caption": string,
"category": string
}
然后你可以从那里开始。