google-drive-api - 从 Gdrive 下载文件时遇到问题:403 禁止错误
问题描述
我有一个具有谷歌驱动器文件选择器功能的网站,它允许用户从 Gdrive 帐户中选择文件并上传到我的网站。
此功能工作正常,但突然从最近 3-4 天停止工作,我收到错误“403 Forbidden:客户端没有权限”。有人可以建议可能是什么问题吗?
解决方案
您遇到的问题似乎主要是由于您没有使用有效的访问令牌进行操作。
客户端错误响应代码表明403 Forbidden
服务器理解请求但拒绝授权。
解决方案
确定访问范围
为了获得适当的访问令牌,您应该将访问令牌响应中包含的范围与访问依赖于 Drive API 的应用程序的特性和功能所需的范围进行比较。
如果您最近更改了应用程序的范围,则需要获取一个新的访问令牌,该令牌将与您使用的新范围相对应。
可以像这样声明多个范围:
string[] scopes = new string[] { DriveService.Scope.DriveAppsReadonly,
DriveService.Scope.DriveAppdata,
...
};
刷新您的访问令牌
根据Using OAuth 2.0 to Access Google APIs文档:
访问令牌的生命周期有限。如果您的应用程序需要在单个访问令牌的生命周期之外访问 Google API,它可以获得刷新令牌。刷新令牌允许您的应用程序获取新的访问令牌。
因此,为了仍然能够像以前一样执行所有操作,您需要刷新访问令牌。
参考
推荐阅读
- python - 提取嵌套 fastapi.HTTPException 的状态码和消息的问题
- python - 无法写入文件(python)
- django - 谁能告诉我如何将 Django Api 转换为 websocket Api?
- reactjs - React Joyride-如何调整浮子的位置?
- c# - Crystal-Reports XSD 导入从抽象类型抛出错误
- dsa - JAVA和GO如何实现相同的DSA签名(SHA1withDSA)?
- java - 基于日期的列的 Apache Beam 重采样
- javascript - 如何在此处正确实现去抖动时间,以便在纯 JavaScript 中每个时间限制仅触发一次?
- url - URL 编码文件名?
- gem5 - 为什么gem5输出显示cpu周期数小于模拟指令数?