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

Discord Bot调用Tenor API提示API密钥无效的问题求助

Tenor API密钥无效错误排查与解决(Discord Bot)

核心问题诊断与修复步骤

1. 替换占位符密钥

你的代码里apikey = "Tenor API key (hdifhaifjhdf-faf)"是测试占位符,必须替换成你从Tenor开发者平台生成的真实有效密钥,注意不要保留示例中的括号、注释或多余空格,直接复制平台提供的完整密钥。

2. 验证密钥有效性

  • 新生成的Tenor API密钥可能需要1-2分钟生效,生成后不要立刻测试
  • 确认密钥是在Tenor开发者后台正确创建的,选择的应用类型与你的Discord Bot匹配
  • 复制密钥时避免误选前后空格,建议用快捷键直接复制粘贴

3. 优化API请求方式

不要用字符串拼接构造URL,容易引发编码问题,改用requests的params参数传递参数,同时增加错误处理:

@client.command()
async def cat(ctx):
    apikey = "你的真实Tenor API密钥"  # 替换为实际密钥
    lmt = 20
    search_term = "cute cat"

    # 用params传递参数,自动处理编码
    params = {
        "q": search_term,
        "key": apikey,
        "limit": lmt
    }
    r = requests.get("https://g.tenor.com/v1/search", params=params)

    # 检查请求状态
    if r.status_code != 200:
        await ctx.send(f"请求失败,状态码:{r.status_code}")
        return

    try:
        top_gifs = r.json()
        # 提取并发送第一个GIF的链接,而非返回原始JSON
        if top_gifs.get("results"):
            gif_url = top_gifs["results"][0]["media"][0]["gif"]["url"]
            await ctx.send(gif_url)
        else:
            await ctx.send("未找到相关GIF")
    except Exception as e:
        await ctx.send(f"解析数据出错:{str(e)}")

4. 清理冗余代码

你定义了MyClient类但未实际使用(当前用的是commands.Bot),可以删除这个类避免代码混淆;另外from os import *这种导入方式容易引发命名冲突,建议按需导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:15:34