【问题标题】:Discord.js Tenor API error [Displaying image from Embed]Discord.js Tenor API 错误 [显示来自嵌入的图像]
【发布时间】:2022-01-14 02:41:29
【问题描述】:

我正在使用 Tenor API 在 Discord.js 的嵌入中显示随机 gif。我做的一切都是正确的,但是,图像没有加载。

这是我的代码:

require('dotenv').config();
const Discord = require('discord.js');
const fetch = require('node-fetch')
module.exports = {
    name: 'tenor',
    category: 'misc',
    aliases: ['gif', 't'],
    async execute(message) {
        const url = `https://g.tenor.com/v1/search?q=Anime_Kiss&key=${process.env.TENOR}&limit=20`
        let response = await fetch(url)
        let mom = await response.json();
        const makerandom = Math.floor(Math.random() * mom.results.length);
        let embed = new Discord.MessageEmbed()
        .setImage(mom.results[makerandom].itemurl)
        message.channel.send({ embeds: [embed]})
    }
};

接下来会发生什么:

【问题讨论】:

  • 在向您的代码发送消息之前添加 console.log(mom.results[makerandom].itemurl) 并检查 url 是否正确

标签: javascript node.js discord discord.js


【解决方案1】:

这是因为itemurl 不是指向文件的直接链接,而是在 tenor.com 上查看帖子的完整 URL。您应该改用media 键。这是一个以format(如gifmp4webm等)为键和media object(如sizeduration和@987654332等键)的字典数组@) 作为值。这意味着您可以使用results[<random index>].media[0].gif.url获取gif图像的URL。

我已经更新了你的代码,现在可以正常工作了:

require('dotenv').config();
const Discord = require('discord.js');
const fetch = require('node-fetch');
module.exports = {
  name: 'tenor',
  category: 'misc',
  aliases: ['gif', 't'],
  async execute(message) {
      let url = `https://g.tenor.com/v1/search?q=Anime_Kiss&key=${process.env.TENOR}&limit=20`;
      try {
        let response = await fetch(url);
        let { results } = await response.json();
        let randomResult = results[Math.floor(Math.random() * results.length)];
        let { gif } = randomResult.media[0];
        let embed = new Discord.MessageEmbed().setImage(gif.url);

        message.channel.send({ embeds: [embed] });
      } catch (err) {
        console.log(err);
        message.channel.send('Oops, there was an error');
      }
  },
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-13
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2013-08-07
    • 2015-08-18
    相关资源
    最近更新 更多