Discord.js 男高音 gif 丰富的嵌入

Posted

技术标签:

【中文标题】Discord.js 男高音 gif 丰富的嵌入【英文标题】:Discord.js tenor gif rich embed 【发布时间】:2021-11-26 02:56:33 【问题描述】:

我目前正在尝试制作一个不和谐的机器人,当我输入 -gif arguments 时,如果显示丰富的嵌入,如图所示,并带有相应的搜索 gif。出于某种原因,如果我自己发送 Tenor api 链接,它可以正常工作,但如果我用嵌入图像显示它,即使使用相同的链接,它也不会显示任何内容。我检查了嵌入显示图像的链接,它不是以 .gif 结尾的直接链接,但如果我在该链接的末尾添加 .gif,它是我的浏览器中显示的直接链接,但不和谐没有不要把它当作一个。 代码:

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: 'prefixgif',

    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 添加到嵌入链接,则不会显示任何内容,而不是在嵌入中显示便便表情符号错误消息。我应该怎么做才能正确显示在嵌入中,而不是仅仅作为消息单独发送1(不要介意奇怪的 gif 男高音选择发送)。我还发现了其他有类似问题的论坛,他们通过在 .url 属性之前添加 .media 来解决它,但它也给我提供了一个错误 TypeError: Cannot read property 'media' of undefined,然后导致在嵌入 2 中根本不显示任何内容的问题。 url: (Post.media[0].itemurl), 谢谢

【问题讨论】:

这是您的完整代码吗?因为我根本看不到这里定义的“男高音” 第一行应该是const Tenor = require("tenorjs").client((固定) 你能给我们举个例子来说明男高音函数会给出什么吗?所以我可以看看链接有什么问题 就像 discord bot 在 discord 上的结果一样?其i.stack.imgur.com/7F5sI.png 和加.media 的常用解决方案也在帖子中链接 我的意思是,具体是什么链接,不是你在discord上看到的,而是gif的实际链接,看看会有所帮助 【参考方案1】:

根据tenorJS 文档,您可以使用Post.url 获取帖子的网址,因此请尝试将itemurl 替换为URL,它应该输出直接的图片网址。

【讨论】:

不对,我已经这样做了。 URL 只是指带有大约 7 个数字和字母的链接的缩短版本,而 itemurl 则使用带有奇怪单词的链接来制作链接。它们在技术上是相同的,我只是更喜欢 itemurl,因为它比 url 更容易解决问题

以上是关于Discord.js 男高音 gif 丰富的嵌入的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 discord.js 获取带有 giphy 的 gif,制作机器人

从数组 discord.js v12 访问项目

嵌入命令(颜色)(discord.js-commando)

Discord.JS 宣布命令问题

使用客户端的参数根据用户留在命令中的参数创建自定义嵌入消息(Discord JS)

投票在 Discord.js 中重新滚动消息