我需要在客户端通过Javascript从公共日历中提取 12个公开事件,或者有很多公共事件。例子:
我一直在使用Google Calendar API Explorer一点也没用(链接会将您带到我已经使用填写的字段的API资源管理器)。无论如何,似乎无法告诉API不包含私人事件。
注意:我正在执行此API调用而不使用OAuth。使用Google日历网络界面发布活动,因此扩展的属性不在我认为的解决方案之内。我的公开Google日历ID:rvv7ae2s15ma471lqqo9t5h74s@group.calendar.google.com
如果查看JSON响应,您会发现私有事件具有以下属性和值:
"visibility": "private"
我可以做的是使用maxResults = 12调用API,只需通过检查上面的JSON属性来过滤掉任何私有事件。
问题是我可能需要多次调用Google Calendar API才能获得所需数量的事件。我必须为多个日历执行此程序(例如,如果我有4个公共Google日历,并且每个平均需要3个API调用才能获得12个事件,我将执行12个不同的AJAX调用只是为了获取数据......)。最重要的是,我得到了12个活动,或直到日历用尽为止。
我找不到解决这个问题的好方法。我仔细检查了Google API Explorer中的所有字段,绝对没有运气。任何帮助,将不胜感激。
答案 0 :(得分:0)
我无法找到我渴望的'好解决方案'的答案,但我确实找到了可接受的妥协方案。
在我的问题中,我已经声明我必须从多个日历中“仅获取公共事件”,并且如果每个日历平均需要3个API调用才能获得X公共事件,我需要调用Google日历API 3 * C,其中C =日历数。
Google API客户端库提供了一个名为Batch Requests的内容,它允许我一次调用多个API调用!因此,我可以使用批量请求在一个请求中获取C日历的所有事件,过滤掉任何私有事件,使用C> =日历生成另一个批量请求,依此类推。
总之,我可以在平均3个API请求中获得C日历的X公共事件,而不是3 * C请求。