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

Flutter调用Youtube Data API设置安卓应用限制后报403错误如何解决?

错误原因

  • 缺失安卓校验必填请求头:针对设置了安卓应用限制的GCP API密钥,服务端要求请求必须携带X-Android-Package和X-Android-Cert两个请求头,用于校验请求来源是否符合配置的应用信息。当前请求仅携带了API密钥参数,未传递这两个头,导致服务端识别不到客户端应用信息,返回<empty>客户端被拦截的错误。
  • 签名值格式不匹配:如果已添加请求头但SHA1值格式错误(保留了冒号分隔符、大小写不符),也会导致校验失败。
  • 配置未生效:GCP凭据页的修改最多需要15分钟才能全网生效,刚修改完配置立即调用可能出现校验失败。

解决方法

修改请求代码手动添加对应请求头即可,示例代码如下:

const FETCH_LINK =
    "$BASE_URL?part=$PART&playlistId=$PLAYLIST_ID&key=$API_KEY&maxResults=$MAX_RESULTS";
var response = await http.get(
  Uri.parse(FETCH_LINK),
  headers: {
    // 替换为安卓项目的applicationId,需和GCP配置的包名完全一致
    "X-Android-Package": "com.your.application.id",
    // 替换为GCP填写的SHA1签名,去掉所有冒号并转全大写
    "X-Android-Cert": "YOURPROCESSEDSHA1VALUE"
  }
);

注意事项

  • X-Android-Package的值必须和GCP凭据页填写的包名完全匹配,对应安卓模块build.gradle中的applicationId字段
  • X-Android-Cert需要对原始SHA1做处理:比如原始SHA1为AA:BB:CC:11:22:33...,处理后为AABBCC112233...,需完全删除冒号并转为全大写
  • 若刚修改完GCP凭据配置,建议等待15分钟后再进行测试,避免配置未生效导致校验失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:27:01