我使用谷歌api nodejs客户端访问服务器端应用程序上的日历。我的应用程序的用户只针对我,所以我通过服务帐户使用jwt访问。
在谷歌开发者控制台上设置了一个服务帐户后,我可以通过谷歌api库将事件获取/插入日历。但我在网络浏览器上的谷歌日历中找不到任何活动。当然,我使用相同的谷歌帐户在开发者控制台上设置服务帐户,并检查谷歌日历网络应用程序。
也许如果我使用服务帐户,会创建一个特殊的日历吗?是否可以通过日历id从我现有的日历中获取/插入事件?当我将现有日历id设置为获取事件时出错,"未找到"。我只能将"primary"设置为calendar_id。
我自己得到了答案。如果我使用现有的日历,我必须在谷歌日历中为每个日历设置"共享设置"。
- 打开谷歌日历
- 转到日历设置页面
- 打开要使用的日历的"共享设置"
- 添加您的服务帐户电子邮件(xxx@developer.gserviceaccount.com)并设置授权级别
然后,我可以访问现有的日历!