机器人发送嵌入消息(带有文本和 gif)。但是,gif 根本无法加载。一切似乎都适用于其他命令,但此特定命令不起作用。我真的不知道,请帮帮我。我的代码:
const fetch = require('node-fetch');
module.exports = {
name: 'hug',
description: "hug command",
async execute(message, args, Discord) {
if (!message.mentions.users.first())
return message.reply('***please mention someone.***');
let keywords = 'anime hug';
let url = `https://g.tenor.com/v1/search?q=${keywords}&key=${process.env.TENORKEY}&contentfilter=low`;
let response = await fetch(url);
let json = await response.json();
const index = Math.floor(Math.random() * json.results.length);
const embed = new Discord.MessageEmbed()
.setColor('#FF8DC4')
.setTitle(`*Aww how cute, ${message.author.username} gave ${message.mentions.users.first().username} a hug!*`,)
.setImage(json.results[index].url)
message.channel.send(embed + json.results[index].url)
}
}
这是邮件的图片:
答案 0 :(得分:0)
错误
由于您使用 Tenor API 在嵌入中发送随机 GIF,直接链接不支持嵌入。如果您 (console.log)
GIF,它会显示 GIF 的直接 Tenor 链接。
解决方案
您需要获取 media
链接,将 .setImage(json.results[index].url
更改为 .setImage(json.results[index].media[0].url
应该可以解决问题。