1

在此页面上使用 google-api-java-client我们可以了解一些流程。

服务帐户流程适用于日历 api:

GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
                    .setJsonFactory(JSON_FACTORY)
                    .setServiceAccountId("[[]]")
                    .setServiceAccountScopes(CalendarScopes.CALENDAR)
                    .setServiceAccountPrivateKeyFromP12File(new File("key.p12")).build();

但我们一直:

503 Service Unavailable
{
  "code" : 503,
  "errors" : [ {
    "domain" : "global",
    "message" : "Backend Error",
    "reason" : "backendError"
  } ],
  "message" : "Backend Error"
}

如果我们使用GroupssettingsScopes.APPS_GROUPS_SETTINGS(api 控制台为此请求授予访问权限)。

我们必须在旧的 2 legged OAuth 1.0a 附近使用一种机制来管理 GApps 帐户的组。

提前谢谢了

4

1 回答 1

0

使用 Groups Settings API,您需要模拟 Google Apps 用户。并且该用户需要是管理员。

另外,我个人注意到最好将服务帐户ID提供给该setServiceAccountId()方法。

这对我有用:

GoogleCredential credential = new GoogleCredential.Builder().setTransport(new NetHttpTransport())
                .setJsonFactory(new GsonFactory())
                .setServiceAccountId("516444413363-4i0cvva2abc8a3t63bbq1a9rfqe42p70@developer.gserviceaccount.com")
                .setServiceAccountScopes(Collections.singletonList("https://www.googleapis.com/auth/apps.groups.settings"))
                .setServiceAccountUser("admin@my.doma.in")
                .setServiceAccountPrivateKeyFromP12File(new File("key.p12")).build();
于 2014-05-17T15:02:26.410 回答