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

Discord Bot斜杠命令调用Tenor API获取GIF遇403错误求助

Discord Bot调用Tenor API出现403错误的解决方法及配置确认

核心排查方向及解决步骤

  • API密钥验证问题
    1. 核对密钥完整性:检查代码中使用的API密钥是否与Tenor开发者控制台生成的完全一致,避免多余空格、换行或字符遗漏。
    2. 确认密钥绑定的应用:在Tenor控制台查看密钥对应的应用信息,确保应用类型和使用场景(Discord Bot)符合平台要求。
  • 请求参数与端点合规性
    1. 检查参数传递:确保API请求中正确携带key参数,参数名拼写无误(Tenor API要求用key作为密钥参数名)。
    2. 验证API端点:使用Tenor官方最新v2版本端点https://tenor.googleapis.com/v2/search,避免使用已废弃的旧版端点。
  • 配额与权限限制
    1. 查看配额消耗:在Tenor控制台检查免费配额是否耗尽,若耗尽需升级配额或等待周期重置。
    2. 排查IP限制:若服务器IP被Tenor拦截,尝试更换网络环境测试请求是否正常。
  • 请求格式问题
    1. POST请求需设置Content-Type: application/json;GET请求确保参数URL编码正确,无特殊字符未转义情况。

Tenor API端额外配置确认

  • 应用注册信息:在Tenor开发者控制台注册应用时,需填写真实准确的应用名称、描述和使用场景,确保Discord Bot的使用符合Tenor服务条款。
  • API服务启用:在Google Cloud控制台(Tenor API归属Google Cloud生态)确认Tenor API服务已启用,未启用会直接返回403错误。
  • 版本兼容性:必须使用v2版本API,v1版本已停止维护,部分功能受限或无法访问。

代码检查示例(以Python为例)

重点核对以下代码细节:

import requests
import discord
from discord import appcommands

DISCORD_TOKEN = "你的Discord Bot令牌"
TENOR_KEY = "你的Tenor API密钥"

class BotClient(discord.Client):
    def __init__(self):
        super().__init__(intents=discord.Intents.default())
        self.tree = appcommands.CommandTree(self)

    async def setup_hook(self):
        await self.tree.sync()

client = BotClient()

@client.tree.command(name="get_gif", description="调用Tenor获取GIF")
async def get_gif(interaction: discord.Interaction, keyword: str):
    api_url = f"https://tenor.googleapis.com/v2/search?q={keyword}&key={TENOR_KEY}&limit=1"
    resp = requests.get(api_url)
    if resp.status_code == 403:
        await interaction.response.send_message("Tenor API访问被拒绝")
        return
    resp_data = resp.json()
    if "results" in resp_data and len(resp_data["results"]) > 0:
        gif_link = resp_data["results"][0]["media_formats"]["gif"]["url"]
        await interaction.response.send_message(gif_link)
    else:
        await interaction.response.send_message("未找到匹配的GIF")

client.run(DISCORD_TOKEN)

检查点:

  • TENOR_KEY是否正确无误
  • 请求URL是否包含key参数且值正确
  • 是否使用v2版本API端点

错误日志分析

若错误日志显示403 Forbidden,可直接定位对应问题:

示例错误日志:
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://tenor.googleapis.com/v2/search?q=test&key=WRONG_KEY&limit=1

此类日志直接指向密钥无效,需重新获取并验证密钥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:04:59