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

调用YouTube API报错:API密钥与认证凭证来自不同项目如何修复

问题根因

这个400错误是谷歌API校验凭证时出现冲突导致的,你当前的请求同时传递了API Key、URL参数中的access_token、Header中的Bearer token三类凭证,触发了交叉校验逻辑,即使控制台中两类凭证同属一个项目,也会出现校验失败。

排查步骤
  • 校验OAuth token所属项目:确认你当前使用的access_token,是用当前项目下的OAuth 2.0 Client ID走授权流程生成的,排查是否是之前测试其他项目时留存的旧token,没有更新到存储中。
  • 核对API Key值:将谷歌云控制台中当前项目的API Key,和代码里_key变量的实际取值做对比,确认没有填错其他项目的Key。
  • 单独验证token有效性:去掉请求中的API Key参数、URL上的access_token参数,仅在Header中携带Authorization: Bearer {你的token}调用接口,若仍报项目不匹配错误,即可确定token不属于当前项目。
  • 确认服务启用状态:检查当前项目的谷歌云控制台中,YouTube Data API v3已正常启用,配额没有超出限制。
修复方案
  1. 调整请求参数:forMine=true参数要求必须使用OAuth2授权,不需要额外传递API Key,同时无需重复在URL上拼接access_token参数,优先用Header传递凭证更安全。修改后的业务代码如下:
var token = Helper.Decrypt(ytConn.AccessToken);
var url = "https://youtube.googleapis.com/youtube/v3/search?forMine=true&order=date&type=video&part=snippet";
videos = Helper.GetFromAPI<Videos>(url, token);
  1. 若排查后确认token不属于当前项目,使用当前项目的OAuth 2.0 Client ID重新走OAuth授权流程,生成新的access_token替换现有存储的token即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:54:00