【问题标题】:Using two Google APIs with the same application在同一个应用程序中使用两个 Google API
【发布时间】:2020-03-25 18:21:37
【问题描述】:

我有一个连接到 Google Drive API 的应用程序。 现在我必须添加另一个需要 Google Directory API 的函数。 我授予了必要的权限并在我的项目中启用了新 API。

但是我仍然收到此错误:

"message" : "访问未配置。Admin Directory API 尚未配置 之前在项目 594418282793 中使用或已禁用。通过启用它 参观 https://console.developers.google.com/apis/api/admin.googleapis.com/overview?project=594418282793 然后重试。如果您最近启用了此 API,请等待几分钟 传播到我们的系统并重试的操作。”

问题是消息中的 URL 给了我一个错误;显然项目 ID 无效。 这是错误:

加载时出错 /apis/dashboard?project=594418282793。您至少缺少一个 以下所需权限:

项目

resourcemanager.projects.get

检查项目 ID 是否有效且您有访问权限 它。

我不知道这种不匹配的原因是什么,为什么错误消息中提供的项目 ID 似乎不存在,以及我应该在我的应用程序中的其他什么地方启用第二个 API。 任何想法将不胜感激。

【问题讨论】:

  • 我会检查您是否在与您的客户端凭据所在的项目相同的项目中启用了它。或者只需下载一组新的客户端凭据。
  • @DaImTo 谢谢!您的意思是在 credentials.json 中的那些,对吧?我有两个,每个 API 一个。这是正确的方法吗?
  • 不,您需要一个单一的凭据 json,然后您可以根据您的用例一起请求 Drive 和 Admin SDK 范围或分开。简单的方法是请求您需要的所有范围,因此您只需处理一个访问令牌。
  • 感谢你们两位,它正在您的帮助下工作。

标签: java google-drive-api google-directory-api


【解决方案1】:

我认为你没有理解 credentials.json 的工作原理。

访问未配置。

表示您为此客户端加载的凭据尚未为您尝试连接的 api 设置。

当您在 Google 开发者控制台上创建项目时,这是为了向 Google 提供有关您的应用程序整体及其设计用途的信息。您应该在单个项目中启用这两个 API。

完成后,像之前一样创建您的 Oauth 凭据,然后此凭据文件将能够连接到这两个 api。

谷歌开发者控制台

左侧菜单单击凭据,然后顶部的按钮显示创建凭据

创建后点击箭头下载,您可以随时下载文件

【讨论】:

  • 感谢您的指导。我的问题是,每当我启用 API 时,我都会收到一组凭据。在这里,我可以启用 Drive API:developers.google.com/drive/api/v3/quickstart/java 并保存凭证文件。在这里,我可以启用 Directory API:developers.google.com/admin-sdk/directory/v1/quickstart/java 并接收不同的凭据文件。我用哪一个有关系吗?
  • 停止使用该按钮来启用 API 在console.developers.google.com中执行此操作
  • 谢谢,我在那里启用了两个 API,还创建了一个必要的服务帐户。现在我有一个 API 密钥和一个 OAuth 客户端 ID。我还为服务帐户创建了一个凭据。这与 credentials.json 的格式相似,但在授权流程中不被接受。我应该获得另一个证书吗?再次感谢您的帮助。我对 Google API 完全陌生,现在我需要其中两个,所以这个设置对我来说很棘手。
  • 记住服务帐户不是您必须授予它访问某些内容的权限。使用服务帐户进行身份验证的代码与使用 Web 应用程序进行身份验证的代码不同。
  • 查看图片?
猜你喜欢
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-17
  • 2018-04-23
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多