Google日历:freeBusy使用一个帐户而不是另一个帐户提供错误“notFound”

时间:2013-03-26 23:04:07

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

首先,我正在使用谷歌应用程序的商业帐户,我有2个帐户test1@mycompany.com和test2@mycompany.com

之后,我在API控制台中注册了一个Api电子邮件到test1@mycompany.com,我将其代表为##### @ developer.gserviceaccount.com

查询很简单,我只需要一个timeMin& timeMax&每个带有id的2个项目我使用Java客户端API发送它

首先使用GoogleAuthorizationCodeFlow查询并使用test1@mycompany.com

{
 "kind": "calendar#freeBusy",
 "timeMin": "2013-03-26T22:50:16.501Z",
 "timeMax": "2013-03-26T22:50:22.501Z",
 "calendars": {
  "test1@mycompany.com": {
   "busy": []
  },
  "test2@mycompany.com": {
   "busy": []
  }
 }
}

这是我使用第二种授权方法获得的(获取错误“notFound”)

GoogleCredential.Builder()
.setServiceAccountId("#####@developer.gserviceaccount.com")
.setServiceAccountPrivateKeyFromP12File("key.p12").etc().etc()

{
 "kind": "calendar#freeBusy",
 "timeMin": "2013-03-26T22:19:14.770Z",
 "timeMax": "2013-03-26T22:19:20.770Z",
 "calendars": {
  "test1@mycompany.com": {
   "busy": []
  },
  "test2@mycompany.com": {
   "errors": [
    {
     "domain": "global",
     "reason": "notFound"
    }
   ],
   "busy": []
  }
 }
}

即使test1@mycompany.com可以访问test2@mycompany.com #####@developer.gserviceaccount.com也不能,为什么他们都是真的相同的帐户不是吗? #####@developer.gserviceaccount.com无论如何都属于test1@mycompany.com。 Test2@mycompany.com设置为共享日历(如第一个查询中所示),我不知道为什么开发者帐户无法访问该业务。

2 个答案:

答案 0 :(得分:0)

我预计会有类似的结果,但在使用service_account凭据时我也遇到了一个notFound错误。对我有用的解决方案是进入日历共享页面并使用#####@developer.gserviceaccount.com电子邮件地址明确地共享我的日历。

答案 1 :(得分:0)

我为没有更多细节而道歉,但最终如何解决这个问题的方法是让Apps for Business帐户的所有者将开发者电子邮件地址(#####@developer.gserviceaccount.com)添加为代表,现在我可以在商业帐户上获得freeBusy时代的任何人。将#####@developer.gserviceaccount.com作为用户添加到日历本身的另一个答案也有效。(虽然我不得不为每个用户执行此操作)