Discord.js something-random-on-descord模因API不工作:DiscordAPI错误:



我刚开始在discord.js中使用API,在npm中偶然发现了一个meme API(https://www.npmjs.com/package/something-random-on-discord)。我遵循了网站上的确切步骤,得到了这个错误:

/home/runner/Penguin69/node_modules/discord.js/src/rest/RequestHandler.js:349
throw new DiscordAPIError(data, res.status, request);
^
DiscordAPIError: Cannot send an empty message
at RequestHandler.execute (/home/runner/Penguin69/node_modules/discord.js/src/rest/RequestHandler.js:349:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (/home/runner/Penguin69/node_modules/discord.js/src/rest/RequestHandler.js:50:14) {
method: 'post',
path: '/channels/914839917769658371/messages',
code: 50006,
httpStatus: 400,
requestData: {
json: {
content: undefined,
tts: false,
nonce: undefined,
embeds: undefined,
components: undefined,
username: undefined,
avatar_url: undefined,
allowed_mentions: undefined,
flags: undefined,
message_reference: undefined,
attachments: undefined,
sticker_ids: undefined
},
files: []
}
}

我的代码是:

const random = require("something-random-on-discord").Random
client.on("messageCreate", message => {
if (message.content.toLowerCase() === "!meme") {
let data = await random.getMeme()
message.channel.send(data)
};
});

这与我使用discord.js v13有关吗?如果是的话,是否还有其他的模因API/生成器可以工作?希望有人能帮忙!

我还发现了另一个模因api:random-jokes-api

它在我的机器人上运行得非常好,所以它应该对你有效!

您只需使用以下内容:

const Memer = require("random-jokes-api")
const Discord = require("discord.js")
const bot = new Discord.Client()
// Listen to the ready event
bot.on("ready", () => {
console.log("Ready!");  
})
// Listen to the message event
bot.on("message", async (message) => {
if (message.content === "meme") {
let meme = Memer.meme()
let embed = new Discord.MessageEmbed()
.setTitle(meme.title)
.setImage(meme.url)
.setFooter(`Categroy: ${meme.category}`)
message.channel.send(embed)
}
})

something-random-on-discord不支持Discord.js v13!

有一个简单的解决方案!

您可以选择image.url选项并将其放入新的嵌入:

const random = require("something-random-on-discord").Random.getMeme();
await message.channel.send({
files: [random.embed.image.url]
});

最新更新