You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js实现GIF命令时如何让Tenor API同关键词返回不同结果

问题原因

你当前代码每次查询仅向Tenor API请求1条结果,默认返回的是对应关键词热度最高的第一条内容,因此同关键词查询结果永远一致。

优化方案
  • 调整API请求参数,单次请求拉取10~30条结果,兼顾随机性和请求效率
  • 从返回的结果数组中生成随机下标,抽取对应GIF返回
  • 可额外增加无结果的兜底提示,优化使用体验
修改后代码
const Tenor = require("tenorjs").client({
    "Key": "Ihaveakeyjustnotshowingit",
    "Filter": "off", // "off", "low", "medium", "high", 不区分大小写
    "Locale": "en_US", // 可替换为你需要的地区编码
    "MediaFilter": "minimal", // 可选minimal或basic,不区分大小写
    "DateFormat": "MM/D/YYYY - H:mm:ss A" // 可根据需求修改日期格式
});

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)
        // 单次请求20条结果,可根据自身需求调整数量
        Tenor.Search.Query(msgArgs, "20").then(Results => {
            if (!Results || Results.length === 0) {
                return message.channel.send("未找到对应关键词的GIF结果")
            }
            // 随机抽取一条结果返回
            const randomIndex = Math.floor(Math.random() * Results.length)
            message.channel.send(Results[randomIndex].itemurl)
      }).catch(console.error);
    },
};

内容的提问来源于stack exchange,提问作者Tachanks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:18:00