繁体   English   中英

仅来自Google Calendar API的公开活动

[英]Only Public Events from Google Calendar API

问题

我需要通过客户端的Javascript从公共日历中准确提取12个公共事件,或者有那么多公共事件。 例子:

  1. 日历共有14个事件。 3个是私有的,所以我期望11个。
  2. 日历共有18个事件。 前三个是私有的。 我希望有12个事件,而不是9个。

我一直在使用Google Calendar API Explorer收效甚微(链接会将您带到我使用过的字段的API资源管理器中)。 无论如何,似乎并没有告诉API不包含私有事件。
注意 :我正在执行不带OAuth的API调用。 活动是使用Google日历网络界面发布的,因此扩展属性超出了我认为的解决方案。 我的公开Goog​​le日历ID:rvv7ae2s15ma471lqqo9t5h74s@group.calendar.google.com

一个不好的解决方案

如果查看JSON响应,您将看到私有事件具有以下属性和值:

"visibility": "private"

我所能做的就是调用maxResults = 12的API,并通过检查上面的JSON属性来简单地过滤出任何私有事件。

  • 如果nextPageToken == null,则日历不再具有任何事件,并且检索到的结果数量无关紧要。
  • 如果nextPageToken!= null,并且在过滤掉私人事件后,剩下的事件少于12个,我可以为接下来的 24个事件(通过传入非null nextPageToken)请求再次调用Google Calendar API。 如果此响应的nextPageToken!= null,并且最近两次调用的事件总数不等于12,则可以请求接下来的48个事件 ,依此类推,直到有12个公共事件为止。

问题是我可能必须多次调用Google Calendar API,然后才能获得所需的事件数。 而且我必须针对多个日历执行此过程(例如,如果我有4个公共google日历,并且每个日历平均需要3个API调用来获取12个事件,那么我将执行12个不同的AJAX调用只是为了获取数据.. )。 我获得12个事件或直到日历用完才是最重要的。

一个好的解决方案

我找不到解决此问题的好方法。 我已经仔细检查了Google APIs Explorer中的所有字段,使之完全为零运气。 任何帮助,将不胜感激。

我找不到我渴望的“好的解决方案”的答案,但确实找到了可以接受的折衷方案。

一个好的解决方案

在我的问题中,我曾说过我必须从多个日历中“仅获取公共事件”,并且如果每个日历平均要进行3次API调用才能获得X个公共事件,则我需要调用Google Calendar API 3 * C,其中C =日历数。

Google API客户端库提供了一个名为Batch Requests的东西,它使我可以一次调用多个API调用! 因此,我可以使用批处理请求在一个请求中获取C日历的所有事件,过滤出任何私有事件,使用C> =日历发出另一个批处理请求,依此类推。

总而言之,我平均可以在3个API请求中获得3个C日历的X个公共事件,而不是3 * C个请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM