#node.js #discord.js
#node.js #discord.js
Вопрос:
Я пытаюсь создать команду, которая отправляет случайное изображение (в данном случае waifu), используя API, доступный в этой конечной точке: https://waifu.pics/api/sfw/waifu
Команда, которую я выполняю test1
, вот мой код:
if (command === 'test1') {
const a = new Discord.MessageEmbed()
got('https://waifu.pics/api/sfw/waifu').then(response => {
let content = response.body;
let Image = content.url;
a.setTitle('test')
a.setImage(`${Image}`)
message.channel.send(a)
})
}
Проблема, с которой я сталкиваюсь, заключается в следующей ошибке:
embed.image.url: Scheme "undefined" is not supported. Scheme must be one of ('http', 'https').
Ответ №1:
Используйте этот формат для отправки встроенных сообщений
message.channel.send({
embed: a
})
или
message.channel.send({
embed: a,
content: "my content without embed"
})
Комментарии:
1. Пожалуйста, добавьте дополнительные подробности, чтобы расширить свой ответ, например, ссылки на рабочий код или документацию.
2. Это не отвечает на заданный вопрос, OP запросил решение для отправки встраивания с изображением из его конечной точки API, а не как отправить простое встраивание.
Ответ №2:
Вы пытаетесь setImage()
использовать переменную Image
, которая является необработанным ответом от API, однако конечная точка API, похоже, отправляет ответ JSON, поэтому вам нужно сначала проанализировать это и преобразовать его в массив, а затем извлечь URL-адрес из url
ключа.
if (command === 'test1') {
got("https://waifu.pics/api/sfw/waifu").then(response => {
let imageData = JSON.parse(response); // Parse the JSON response from the API.
// Prepare the embed.
let embed = new MessageEmbed()
.setTitle("Embed Title")
.setDescription("Embed message here!")
.setImage(imageData.url); // Set the image.
message.channel.send({ embeds: });
});
}