谁拥有通过Google Calendar API由服务帐户创建的日历,以及它们如何共享?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (74)

比方说,我有一个some.account@gmail.com带有项目的Google帐户project-1(在Google Developer Console中配置为Google App Engine应用程序)和一个带有电子邮件地址的服务帐户12..@developer.gserviceaccount.com

我知道如何使用此服务帐户创建日历并以编程方式操作其条目:我使用Google API客户端库(具有服务帐户凭据的Java版本)在Google App Engine应用程序中调用Google Calendar API,只是。然而,任何此类创建的日历似乎都明显属于服务帐户,而不是我的谷歌帐户。我从以下观察结论中得出结论:

  • 当我在Google日历用户界面中查看我的Google帐户的日历时,没有一个以编程方式创建的日历显示在下方My calendars
  • 当我尝试通过发布Other calendars| 来访问这样的日历时 Add a friend´s calendar和服务帐户的电子邮件地址,我可以发送请求,但它永远不会得到答复(大概是因为服务帐户的电子邮件地址不是“真实”的电子邮件地址)。
  • 当我以编程方式创建日历时,我没有设置CalendarListEntry#hidden,所以应该使用默认值false

所以我的问题是:如何访问通过Google日历Web用户界面中的Google Calendar API(以及本例中的Java客户端)以编程方式创建的日历和日历条目。例如,服务帐户可以通过其拥有的Google帐户共享其日历,或者我可以直接在界面中使用其帐户凭据凭证处理Google帐户的日历。

提问于
用户回答回答于

你将不得不以编程方式共享由服务帐户创建的日历。日历由服务帐户拥有。

你尝试过什么:

  • 日历不会显示在您的帐户中,因为您无权访问它们,即使您是appengine管理员。
  • 输入服务帐户的电子邮件地址不会显示UI中的日历,因为服务帐户的电子邮件地址不是日历的电子邮件地址。一个服务帐户可以创建多个日历。

与你的帐户以编程方式共享日历,记录日历唯一ID,然后将其输入到UI中。

用户回答回答于

我以为你必须创建一个PRN参数的日历

使用prn参数因此将允许你使用服务帐户身份验证(例如)添加名称中的事件(谷歌地址)。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励