【问题标题】:GET/ADD Events to google calendar with a service account使用服务帐户获取/添加事件到谷歌日历
【发布时间】:2016-01-22 10:18:37
【问题描述】:

我必须从 Java Web 应用程序访问 Google 日历才能获取事件并将其添加到共享的 Google 日历中 我遵循了来自 google 的 java quickstart example,到目前为止一切正常

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

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

【问题讨论】:

    标签: java google-api google-calendar-api google-oauth service-accounts


    【解决方案1】:

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

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

    解决方案:

    转到 Google 日历网站,将服务帐户电子邮件地址添加为日历用户。然后服务帐户将能够访问它。如果你愿意,如果你真的需要它,你可以以编程方式将它插入到 calendar.list 中。 IMO 对于具有服务帐户的 Calendar.list 来说确实没有多大意义。

    更新

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

    如果您希望在 calendar.list 中使用它,请从服务帐户代码中调用 Calendarlist.insert。您只需运行一次即可将相关日历插入服务帐户日历列表。

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

    【讨论】:

    • 感谢您的回答。如果服务帐户“用户”可以访问我的日历中的某些内容,我目前只使用 calendar.list 作为测试。我已经将服务帐户添加到我的日历中,但我仍然看不到任何事件。另一个问题是我只能授予它查看空闲/忙碌选项以查看所有事件详细信息或对事件进行更改的权利
    • 我确实将服务帐户添加到日历中,但我可以选择的唯一权限设置是“仅查看空闲/忙碌(隐藏详细信息),即使使用该设置,它也不会在该日历中显示即将到来的事件
    • 您是日历的所有者吗?您应该有权访问所有设置。
    • 是的,我是该日历的所有者,它是一个谷歌企业帐户,或者它被称为但即使是公司的管理员也只能将具有此选项的服务帐户添加到他的一个日历中跨度>
    猜你喜欢
    • 1970-01-01
    • 2017-12-24
    • 2020-05-25
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多