Discord.js тенор gif богатый встраиваемый

#javascript #discord #discord.js #bots

Вопрос:

В настоящее время я пытаюсь создать бота discord, где, когда я набираю аргументы gif, если отображается богатая вставка, как показано на изображении, с соответствующим поисковым gif. По какой-то причине, если я отправлю ссылку tenor api сам по себе, она будет работать нормально, но если я отобразю ее с помощью встроенного изображения, она ничего не отобразит, даже используя ту же ссылку. Я проверил ссылку встроенного отображаемого изображения, и это не прямая ссылка, заканчивающаяся на .gif, но если я добавлю .gif в конец этой ссылки, это прямая ссылка, отображаемая в моем браузере, но discord не рассматривает ее как таковую. Код:

 const Tenor = require("tenorjs").client({
    "Key": "Ihaveakeyjustnotshowingit", // https://tenor.com/developer/keyregistration
    "Filter": "off", // "off", "low", "medium", "high", not case sensitive
    "Locale": "en_US", // Your locale here, case-sensitivity depends on input
    "MediaFilter": "minimal", // either minimal or basic, not case sensitive
    "DateFormat": "MM/D/YYYY - H:mm:ss A" // Change this accordingly
});

const fs = require('fs');
const discord = require('discord.js');


module.exports = {
    name: 'gif',
    aliases: ['tenor', 'gifsearch', 'gf'],
    category: 'Funny',
    utilisation: '{prefix}gif',

    execute(client, message, args) {

        const msgArgs = message.content.slice(this.name.length   1)

        Tenor.Search.Query(msgArgs, "1").then(Results => {
            Results.forEach(Post => {
                message.channel.send({
                    embed: {
                        title: 'Women',
                        color: 'c20d00',
                        image: {
                            url: (Post.itemurl),
                        },
                    },
                })
                message.channel.send(Post.itemurl)
            });
      }).catch(console.error);
    },
};
 

Если я добавлю .gif в ссылку для встраивания, просто ничего не появится, вместо того, чтобы показывать сообщение об ошибке emoji poop во встраивании. Что я должен сделать, чтобы он правильно отображался во вставке, а не просто отправлялся в виде сообщения сам по себе 1 (Не обращайте внимания на странный gif, который тенор выбрал для отправки). Я также нашел другие форумы с аналогичными проблемами, и они решают их , добавляя .media перед свойством .url, но это также приводит к ошибке
TypeError: Cannot read property 'media' of undefined , из-за которой проблема просто не отображается в embed 2. url: (Post.media[0].itemurl),
Спасибо

Комментарии:

1. Это ваш полный код? Потому что я вообще не вижу здесь определения «Тенора»

2. Первая строка должна была быть const Tenor = require("tenorjs").client({ (исправлена)

3. Можете ли вы привести нам пример того, что даст функция тенора ? Чтобы я мог посмотреть, что не так со ссылкой, пожалуйста

4. Как в результате раздора бот на раздоре? Его i.stack.imgur.com/7F5sI.png и общее решение добавления .media также связано в посте

5. Я имел в виду, какая конкретно ссылка, не то, что вы видели в discord, а фактическая ссылка на gif, было бы полезно ее увидеть

Ответ №1:

Комментарии:

1. Это неправильно, я уже это сделал. URL просто ссылается на сокращенную версию ссылки с примерно 7 цифрами и буквами, в то время как itemurl использует ссылку со странными словами, чтобы создать ссылку. Они технически идентичны, я просто предпочитаю itemurl, так как это проще, чем url для устранения неполадок