【问题标题】:authorize google calendar api works on personal account but not on google domain account授权 google calendar api 适用于个人帐户,但不适用于 google 域帐户
【发布时间】:2012-12-02 10:48:13
【问题描述】:

我需要创建一个 Java 应用程序,将日历事件存储在 Google 域内的员工中。 我根据在 http://code.google.com/p/google-api-java-client/wiki/APIs#Calendar_API 上找到的示例创建了应用程序

现在我想让它在来自 google 域的帐户上运行,但突然间我被卡住了。 我用一个新文件更改了 client_secrets.json 文件。在 code.google.com/apis/console 上为已安装的应用程序生成,现在我收到无效的客户端错误:

ex = (com.google.api.client.auth.oauth2.TokenResponseException) com.google.api.client.auth.oauth2.TokenResponseException: 400 错误请求 { “错误”:“未授权客户端” }

我需要为此执行其他步骤吗?此外,默认情况下,它需要在域内的所有帐户上工作,而不是单个帐户。也许其他控制台?我希望不是其他图书馆。

【问题讨论】:

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


    【解决方案1】:

    要访问域中的所有帐户,您需要使用服务帐户:

    https://developers.google.com/accounts/docs/OAuth2ServiceAccount

    虽然此链接特定于 Drive API,但它应该为您提供一些易于适应 Calendar API v3 的代码示例:

    https://developers.google.com/drive/delegation

    【讨论】:

      【解决方案2】:

      为了将来参考,我使用以下代码授权 Google 日历

         java.io.File licenseFile = new java.io.File("39790cb51b361f51cab6940d165c6cda4dc60177-privatekey.p12");
      
         GoogleCredential credential = new GoogleCredential.Builder()
      
        .setTransport(HTTP_TRANSPORT)
        .setJsonFactory(JSON_FACTORY)
        .setServiceAccountId("xxxxx@developer.gserviceaccount.com")   
      
        .setServiceAccountUser("USER_EMAIL_ADRESS")
        .setServiceAccountScopes(CalendarScopes.CALENDAR)
        .setServiceAccountPrivateKeyFromP12File(licenseFile)
        .build();
      
        client = new com.google.api.services.calendar.Calendar.Builder(
                              HTTP_TRANSPORT, JSON_FACTORY, credential)
                              .setApplicationName( "Google Calendar Sync").build();
      

      这些链接也对设置服务帐户有很大帮助:

      OAuth Google API for Java unable to impersonate user

      Can a Google Apps Admin manage users files with Drive SDK?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-28
        • 2015-09-06
        • 2021-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多