GET/ADD 事件到 google 日历与服务帐户

GET/ADD Events to google calendar with a service account

我必须从 java 网络应用程序访问 google 日历以获取事件,尤其是将事件添加到共享 google 日历 我遵循了 google 中的 java 快速入门 example,到目前为止一切正常

然后我更改了该示例中的授权方法以使用服务帐户,身份验证似乎有效,但从 google 返回的日历列表为空

我已经与服务帐户电子邮件共享了日历,但这并没有改变任何东西

服务帐户是虚拟用户。它有自己的 Google 日历帐户。默认情况下,它无法访问任何 Google 日历,您需要与其共享 google 日历或向其中插入新的 Google 日历。

Calendar.list 完全是另一回事,它基本上是日历网站左下角的小方框。为了让日历出现在那里,我需要将其插入 calendar.list。

解法:

转到 Google 日历网站,将服务帐户电子邮件地址添加为您的日历用户。然后服务帐户将能够访问它。如果你想要,你可以通过编程将它插入 calendar.list 如果你真的需要它在那里。在我看来,使用服务帐户 Calendar.list 真的没有多大意义。

更新

您应该能够授予您的服务帐户访问权限,以便像其他用户一样做任何您想做的事。

如果你想在 calendar.list call Calendarlist.insert 中从服务帐户代码中获得它。您只需 运行 一次即可将相关日历插入服务帐户日历列表。

尝试 运行ning Calendars.get 在日历上它应该可以访问而无需将其插入 calendar.list