Google Calendar API公众假期

时间:2016-04-04 15:27:43

标签: node.js google-api google-calendar-api

使用节点https://github.com/google/google-api-nodejs-client图书馆我试图访问公众假期。我有auth工作并且可以访问API。当我使用API​​资源管理器测试events.list端点时,它可以工作,我怀疑日历

  

calendarId:'en.sa#holiday@group.v.calendar.google.com'

存在于我的个人日历中,但不存在于应用日历中。

当我尝试在我的节点应用程序中获取日历列表时,列表为空:

calendar.calendarList.list({auth: jwtClient}, calenderGetComplete);

所以events.list没有找到日历。

calendar.events.list({ calendarId :'en.sa#holiday@group.v.calendar.google.com', auth: jwtClient}, calenderGetComplete);

因此,在个人日历上,可以添加其他有趣的日历,例如公共假日日历,但似乎您无法为应用程序使用的日历执行此操作?公共日历似乎没有“有趣的日历”?

1 个答案:

答案 0 :(得分:2)

我不确定您是如何验证Oauth2或服务帐户的?

日历列表和日历之间存在差异。日历列表只是谷歌日历网站左下角的一个小列表,它没有真正的目的(IMO)。如果您正在使用服务帐户并授予其访问您的个人(例如:chrisMalherbe at gmail.com)Google日历,则可以访问该日历但它不会出现在服务帐户calendar.list中,除非您手动将其插入。当您将这些有趣的日历中的一个添加到您的个人谷歌日历页面(例如:gmail.com的chrisMalherbe)时,网站会自动将其添加到calendar.list中。

它确实不需要在那里。

对于公共日历,每个人都可以访问,他们不需要在日历列表中。它们是公共的,您可以创建公共API密钥并从中请求数据。我不确定en.sa是什么日历,但我会把你的API密钥转储到网页浏览器中,以确保有数据。如果内存服务有一些没有数据,并且数据只用了一年头我认为如此,如果你在2020年寻找假期,那么就不会有任何数据。

GET https://www.googleapis.com/calendar/v3/calendars/en.sa#holiday@group.v.calendar.google.com/events?key=[APIKey]

如果您不想使用公共API密钥,则使用访问令牌

GET https://www.googleapis.com/calendar/v3/calendars/en.sa#holiday@group.v.calendar.google.com/events?access_token=[accesstoken]

我不是node.js专家,但我发现这个node-google-api它可能对我有一个教程有帮助,它主要解释公共日历是如何工作的,但它在C#中对你有任何帮助或者可能没有任何帮助。 Public Google Calendars with C#