最近(在过去的一周内)我们的 unity webgl (Unity v2019.4.16f1) 应用程序无法使用 google Drive API 读取文件。当我检查 Web 控制台时,我看到以下错误:
UnityGoogleDrive:HTTP/1.1 403 禁止 Google Drive API 错误描述:代码“403”消息:“请求缺少有效的 API 密钥。” 域:“全局”原因:“禁止”消息:“请求缺少有效的 API 密钥。”位置类型:'' 位置:'' (文件名:./Runtime/Export/Debug/Debug.bindings.h 行:35)
申请已经4个月了,至今没有任何问题。 我们目前有一个 OAuth 2.0 客户端 ID 设置,但没有 API 密钥,因为我们以前不需要它。我们在 Unity 中用于访问 google Drive 的插件 (https://github.com/Elringus/UnityGoogleDrive) 除了 OAuth ID 之外,没有任何用于添加 API 密钥的明显设置。
直接在 Unity 中运行应用程序(使用 localhost)时不会出现错误并且可以访问文件。
我尝试在云控制台中禁用并重新启用 API。这带来了好坏参半的结果。重新启用 Google Drive API 后,Web 应用程序上的初始请求成功,没有任何错误。所有后续请求都会失败并出现相同的错误。
根据缺失值,我认为问题可能是我们需要分配给谷歌项目的有效计费计划,但这也没有解决问题。
我尝试生成 API 密钥,但我不确定需要将其传递到哪里才能解决问题(如果这就是问题的原因)。
报告的错误是一个转移注意力的错误。真正的问题是我们的请求没有触发 Google 的身份验证。我们的 Unity 开发环境缓存了身份验证令牌,这就是开发环境正常运行但生产应用程序失败的原因。
我们通过先向 GoogleDriveAbout API 发送请求来解决该问题,这似乎可以可靠地触发重新身份验证。一旦经过身份验证,一切都会按预期进行。
感谢您的信息!
您是不是偶然在 Elringus Repo 上造成了问题?