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

Unity WebGL应用调用Google Drive API出现403 Forbidden(缺API密钥)求助

Unity WebGL 调用Google Drive API 报403 "缺少有效API密钥" 问题排查与解决

问题背景

过去一周,我们基于Unity v2019.4.16f1开发的WebGL应用突然无法通过Google Drive API读取文件,Web控制台抛出以下错误:

UnityGoogleDrive: HTTP/1.1 403 Forbidden
Google Drive API Error Description: Code '403' Message: 'The request is missing a valid API key.'
Domain: 'global' Reason: 'forbidden' Message: 'The request is missing a valid API key.' LocationType: '' Location: ''
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

应用之前稳定运行4个月,仅配置了OAuth 2.0客户端ID,从未使用过API密钥。当前用的Unity谷歌云盘插件没有明显的API密钥设置入口;本地localhost运行时一切正常,禁用再重新启用Drive API后首次请求能成功,但后续还是报错;绑定计费方案后问题也没解决,现在已经生成了API密钥,但不知道该怎么传入,也不确定是不是问题根源。

解决步骤

1. 确认API调用规则变更

Google近期可能调整了Drive API的权限要求,部分原本只需要OAuth授权的接口,现在强制要求同时携带API密钥,这可能是之前正常现在报错的核心原因。

2. 给插件强制传入API密钥

虽然插件表面没提供设置入口,但可以通过代码给请求手动添加API密钥参数:
在发起Drive API请求前,往请求的Query参数里加key=你的API密钥,示例代码如下:

var fileListRequest = new UnityGoogleDrive.Data.FileListRequest();
fileListRequest.QueryParameters.Add("key", "你的API密钥内容");
UnityGoogleDrive.DriveFiles.List(fileListRequest, OnFilesReceivedCallback);

也可以找插件的全局配置脚本(比如GoogleDriveSettings),在初始化阶段给所有请求统一添加API密钥,避免每个请求都手动配置。

3. 检查API密钥的配置正确性

  • 确保API密钥已启用Drive API权限:在Google Cloud控制台的API密钥页面,编辑你的密钥,在「API限制」里选择「Google Drive API」,不要选「无限制」。
  • 检查应用限制:如果密钥设置了HTTP引用限制,必须把WebGL应用的部署域名(带https前缀)加进去,localhost也可以添加作为测试用。

4. 排查WebGL环境的特殊问题

WebGL的请求机制和本地运行不一样,要确认:

  • OAuth 2.0的授权流程在WebGL里是否正常拿到了有效令牌,请求是否同时携带了令牌和API密钥。
  • 插件是否适配WebGL环境的请求构造,试试把插件更到最新版本,修复可能存在的WebGL专属bug。

5. 用外部工具验证API有效性

用Postman之类的工具直接调用相同的Drive API接口,同时带上你的API密钥和OAuth令牌,如果Postman能成功返回数据,说明问题出在Unity插件的请求构造上;如果Postman也报错,就重点检查API密钥和OAuth的权限配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:25:28