【问题标题】:Getting a 403 - Forbidden for Google Service Account获取 403 - 禁止 Google 服务帐户
【发布时间】:2013-12-04 10:12:09
【问题描述】:

我正在尝试获取 Google 服务帐户的访问令牌。以下是我的代码 -

String SERVICE_ACCOUNT_EMAIL = "edited@developer.gserviceaccount.com";
List scope = new ArrayList();
scope.add("https://www.googleapis.com/auth/admin.directory.user");
String keyFile = "C:\\edited-privatekey.p12";
HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
JsonFactory JSON_FACTORY = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(scope)
.setServiceAccountPrivateKeyFromP12File(new java.io.File(keyFile))
.build();

credential.refreshToken();
String accessTokens = credential.getAccessToken();

虽然代码运行良好并且我确实获得了访问令牌,但当我尝试使用它通过 Google 目录 API“获取”Google Apps 用户时,我收到了 403 - 禁止响应代码。有人可以帮忙吗?
我知道 GET 用户的代码是正确的,因为它适用于 Google Apps 管理员生成的访问令牌。

【问题讨论】:

    标签: google-api google-apps google-oauth google-api-java-client google-oauth-java-client


    【解决方案1】:

    您需要设置一个管理员帐户:

    .setServiceAccountUser(some_admin_email)
    

    并确保您的应用(具有正确的范围)在 cpanel 中被授予访问权限。

    【讨论】:

    • 感谢您的帮助。添加 setServiceAccount 后出现以下错误 - 线程“main”com.google.api.client.auth.oauth2.TokenResponseException 中的异常:400 Bad Request {“error”:“access_denied”,“error_description”:“不允许请求的范围:googleapis.com/auth/admin.directory.user" } API 访问和服务都打开(否则管理员访问令牌将不起作用)。范围访问也是 ON。我应该打开其他任何特定设置吗?
    【解决方案2】:

    前往https://admin.google.com。如果更多控件不存在,请登录并添加安全控件。 单击Security->Advance Settings->Manage ThirdParty OAuth Client Access 并检查是否为您的xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com 服务帐户ID/客户端ID 添加了这些范围(逗号分隔)。

    【讨论】:

      【解决方案3】:

      您必须在 https://console.developers.google.com/ 库中使用特定 api 之前启用它,以使其与您的 api 密钥一起使用。 观看视频https://www.youtube.com/watch?v=s_G5CnAu69M

      【讨论】:

      • 虽然链接到外部资源很好,但即使链接被删除或在某个时候停止工作,您的答案也应该独立存在。您能否在此处至少总结一下启用 API 的步骤?
      猜你喜欢
      • 2020-08-28
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2017-06-22
      • 2019-01-04
      相关资源
      最近更新 更多