首页 > 解决方案 > Google 日历 API 以编程方式提供对 gservice 帐户的访问权限

问题描述

我的应用程序正在访问注册的谷歌日历(共享)并将日历事件添加/同步到这些日历。

但在我的应用程序可以访问这些日历之前,我需要通过共享sapmle-application@my-api-project-ato-ni-bai.iam.gserviceaccount.com日历Settings > Share with specific people

之后,我的应用程序可以以编程方式添加日历事件。

我现在想要做的是......在我的应用程序中......我想注册一个谷歌日历......这Share with specific people部分将以编程方式完成......所以我不需要去所有日历设置并与我的应用程序共享服务帐户。

我只需输入/添加/注册一个谷歌日历 ID,我的应用程序将运行一些代码,将日历共享给我的 gservice。

我不确定这是否可行以及如何做到这一点......现在,我希望在不打开日历设置的情况下在我的应用程序上完成所有操作(假设我已经有了我需要添加/注册到我的谷歌日历 ID 的列表应用)。

TIA

标签: springcalendargoogle-calendar-api

解决方案


您可以创建一个应用程序,该应用程序使用 Oauth2 登录用户,请求访问他们的日历帐户。您将需要以下范围。

https://www.googleapis.com/auth/calendar

一旦您可以访问他们的 Google 日历帐户,您只需将服务帐户acl.insert的 acl 记录添加到您喜欢的任何日历中。

但是您仍然必须获得用户权限才能执行此操作。

笔记

您实际上应该只为您(开发人员)控制的日历使用服务帐户。您应该让普通用户登录使用 Oauth2,而不要求他们与您的服务帐户共享他们的日历。这不是服务帐户的用途。


推荐阅读