嵌入消息 gif 在 discord.js 中不起作用

时间:2021-06-06 06:38:22

标签: javascript node.js discord discord.js

机器人发送嵌入消息(带有文本和 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)
        }
    }

这是邮件的图片:

enter image description here

1 个答案:

答案 0 :(得分:0)

错误

由于您使用 Tenor API 在嵌入中发送随机 GIF,直接链接不支持嵌入。如果您 (console.log) GIF,它会显示 GIF 的直接 Tenor 链接。

解决方案

您需要获取 media 链接,将 .setImage(json.results[index].url 更改为 .setImage(json.results[index].media[0].url 应该可以解决问题。