首页 > 解决方案 > 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

解决方案


Google Drive API 文档中有一个关于 API 的所有可能错误的页面。您可以查看401错误:

401 错误表示您使用的访问令牌已过期或无效。此错误也可能是由于缺少对请求范围的授权而导致的。

要修复此错误,请使用长期刷新令牌刷新访问令牌。如果失败,请引导用户完成 OAuth 流程,如使用 Google Drive 授权您的应用中所述。

因此,您需要做的事情清单:

阅读Google API 中的 Oauth2 工作流程也会有很大帮助。


推荐阅读