google-drive-api - Google Drive API 的凭据无效
问题描述
这个周末我开始了一个涉及 Google Drive API 的新项目。我能够使用服务帐户成功查询文件和权限资源。
然后在星期一,没有对我的代码进行任何更改,我开始在每个请求上收到 401 Invalid Credentials 。我仍然可以使用相同的服务帐户凭据查询 Admin SDK API。
我正在使用 Python Google API 客户端。我确保在我的 Python 请求中包含 API 文档中列出的所有范围。我已向服务帐户授予域范围的委派以及所有必要的范围。
如果我使用服务帐户或使用OAuth 2.0
并使用管理员用户授予授权,我会收到相同的错误。当我在文档页面(例如https://developers.google.com/drive/api/v3/reference/files/list )上使用 API 资源管理器时,我什至得到了错误。这是我反复得到的回应:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
关于其他方法的任何想法我可以尝试让它工作吗?
解决方案
Google Drive API 文档中有一个关于 API 的所有可能错误的页面。您可以查看401
错误:
401 错误表示您使用的访问令牌已过期或无效。此错误也可能是由于缺少对请求范围的授权而导致的。
要修复此错误,请使用长期刷新令牌刷新访问令牌。如果失败,请引导用户完成 OAuth 流程,如使用 Google Drive 授权您的应用中所述。
因此,您需要做的事情清单:
阅读Google API 中的 Oauth2 工作流程也会有很大帮助。
推荐阅读
- python - Pandas 使用文本列重新采样
- sorting - 使用拖放 UWP MasterDetailsView 对项目进行排序
- javascript - 如果任何键为假,则过滤对象数组
- mapbox-gl-js - 地图框。表格上悬停事件的高亮效果。SetData 需要 2 秒来更新具有 6000 个特征的源
- java - 我想使用两个线程 evenCount 和 oddCount 找到偶数和奇数
- github - Github api 发布草稿版本
- jquery - jQuery Toggle 根本不切换
- python - ValueError:尝试将值写入 .txt 文件时对已关闭文件进行 I/O 操作
- biztalk - BizTalk 架构跟踪问题
- python - 如何让 pip3 安装一个可以从任何地方在控制台中输入的命令?