当前位置: 首页 > 知识库问答 >
问题:

谷歌API给出未经授权的令牌错误

金高飞
2023-03-14

我们有一个托管在GCP中的应用程序,它使用GSuite API将用户从GSuite同步到我们的应用程序,并使用服务帐户将用户从GSuite同步到我们的应用程序,反之亦然。它过去工作得很好,直到最近我们的一些客户开始面临问题。

我们开始得到

401未经授权。客户端未经授权使用此方法检索访问令牌,或者客户端未被授权使用任何请求的作用域

我们的应用程序和授予的权限列表都没有更改。以下是授予的api访问权限列表:-

https://apps-apis.google.com/a/feeds/domain,
https://www.googleapis.com/auth/activity,
https://www.googleapis.com/auth/admin.directory.group,
https://www.googleapis.com/auth/admin.directory.orgunit, 
https://www.googleapis.com/auth/admin.directory.user,**
https://www.googleapis.com/auth/admin.directory.user.readonly,
https://www.googleapis.com/auth/drive,
https://www.googleapis.com/auth/drive.appdata,
https://www.googleapis.com/auth/drive.file,
https://www.googleapis.com/auth/drive.metadata,
https://www.googleapis.com/auth/drive.metadata.readonly,
https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly,
https://www.googleapis.com/auth/admin.directory.rolemanagement,
https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly,
https://www.googleapis.com/auth/admin.directory.device.chromeos,
https://www.googleapis.com/auth/drive.apps.readonly,
https://www.googleapis.com/auth/drive.photos.readonly,
https://www.googleapis.com/auth/drive.scripts  

直到昨天,受影响的GSuite域仍在正常工作。还有一些领域仍然可以正常工作。

有人能提出问题是什么吗?最近空气污染指数有什么变化吗?任何帮助都将不胜感激。

共有1个答案

轩辕源
2023-03-14

"客户端无权使用此方法检索访问令牌,或者客户端无权使用任何请求的范围。"

有几种方法可以通过谷歌认证。

  • 基于web的应用程序
  • 本机应用程序
  • 移动应用程序
  • 和服务账户

您为这些类型创建的客户端不同,使用它们的代码也不同。您在上面看到的消息意味着您使用的代码与您创建的客户端类型不匹配。

确保您的代码是为服务帐户设计的,并确保您从谷歌开发人员控制台下载的凭据文件实际上是服务帐户的凭据。

为什么它以前工作,突然停止我不能告诉你这是一个错误,你总是会得到如果你的代码不匹配你的凭证类型。

最后一个选项是仔细检查所有这些API是否在Google开发人员控制台中为您的服务号项目启用。

 类似资料:
  • 我正在尝试在Android设备上使用一个简单的电话差距应用程序。因此,我遵循了所有步骤,创建了一个项目,该应用程序成功地与GCM服务器通信,并使用我的项目编号获取注册ID。 问题是我不能从服务器端与GCM通信。我最初是在Perl中这样做的,但是即使是GCM文档中的curl example也返回“401”。 他们的API访问密钥被列入了白名单,我试着删除它并创建新的几次。甚至尝试使用浏览器密钥而不是

  • 我是第一次使用谷歌API,我在尝试下载文件对象“下载Url”属性的文件时遇到问题。我当前正在使用“服务帐户”选项以及关联的服务帐户电子邮件和 P12 证书。 但是,URL返回“https://doc-08-68-docs.googleusercontent.com/docs/securesc/bteg36c1tifegg79l2ov17og25612tet/gk7kn52ahe4d0to7d6ht

  • 我用这个代码通过OAuth 2.0授权谷歌 oauthswift=OAuth2Swift(consumerKey:“984813079630-f828a92sqtl5lgumd4kgp9i30bs9og09.apps.googleusercontent.com”,ConsumerCret:“AIzaSyD13MBv78yWIjl4TX9jOOT9AWuEkYdVSPQ”,授权URL:https:/

  • 我正在编写一个类,用于创建对BigQuery和Google云存储的授权。 在过去,我曾使用,但已被弃用。我试图使用,但我发现它只允许我使用,而我需要。 我知道可以从转换为,但我不知道如何将它们转换成相反的方向(转换为)。例如,我像这样创建连接: 有人能给我指明如何实现这一目标的方向吗? 谢谢!

  • 在我的Java/Ionic2应用程序中,我通过REST服务请求使用刷新令牌对Google Drive进行身份验证,然后使用access_type=offline,如下所述:https://developers.Google.com/identity/protocols/oauth2webserver#refresh。 服务器响应200 OK,所以它给我一个刷新和一个访问令牌,只是在我第一次请求访问

  • 我正试图在他过期后获得一个新的访问令牌。我已将收到的信息保存在银行中,作为第一次客户访问的回报: {"access_token":"TOKEN","refresh_token":"TOKEN","token_type","承载","expires_in": 3600,"创建": 1320790426} 令牌到期后,我需要申请一个新的令牌,我这样做: 问题是总是返回以下错误:刷新OAuth2令牌时出