Google 日历 API 中只有 Public 个事件

Only Public Events from Google Calendar API

问题

我需要通过客户端的 Javascript 从 public 日历中提取 恰好 12 public 个事件,或者尽可能多的 public 事件有。示例:

  1. 日历共有 14 个活动。 3 个是私人的,所以我预计 11 个。
  2. 日历共有 18 个活动。前 3 个是私人的。我预计有 12 个事件,而不是 9 个。

我一直在使用 Google Calendar API Explorer 收效甚微(link 将带您到 API 资源管理器,其中填写了我一直使用的字段)。似乎没有办法告诉 API 不包括私人活动。
注意:我在没有 OAuth 的情况下执行此 API 调用。事件是使用 Google 日历 Web 界面发布的,因此我认为扩展属性不在解决方案之内。我的 public Google 日历 ID:rvv7ae2s15ma471lqqo9t5h74s@group.calendar.google.com

一个糟糕的解决方案

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

"visibility": "private"

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

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

一个好的解决方案

我找不到解决这个问题的好方法。我仔细检查了 Google APIs Explorer 中的所有字段,运气绝对为零。任何帮助,将不胜感激。

我找不到我所渴望的 'Good Solution' 的答案,但我确实找到了一个可以接受的折衷方案。

一个好的解决方案

在我的问题中,我曾声明我必须从多个日历中执行此操作 'get only public events',如果每个日历平均需要 3 API 次调用才能获得 X public事件,我需要调用 Google Calendar API 3*C,其中 C = 日历数。

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

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