Google calendar api Google日历API-具有最大时间限制的重复事件

Google calendar api Google日历API-具有最大时间限制的重复事件,google-calendar-api,google-api-client,Google Calendar Api,Google Api Client,我想获取定期事件的所有事件 因此,我将选项singleEvents设置为true。 现在,当我列出所有事件时,响应返回无尽的项目(通过使用nextPageToken)。当然,我可以设置MaxTime来设置最大时间限制 但是,我需要syncToken只获取更新的事件。否则,我的服务器有很多同步任务:( 当发生更改时,服务器会收到推送通知。当我创建定期事件时,服务器会收到推送通知,并尝试通过最后一个syncToken(使用列表事件)获取更新的事件 如何设置最长时间限制,以便获得nextSyncTok

我想获取定期事件的所有事件

因此,我将选项singleEvents设置为true。 现在,当我列出所有事件时,响应返回无尽的项目(通过使用nextPageToken)。当然,我可以设置MaxTime来设置最大时间限制

但是,我需要syncToken只获取更新的事件。否则,我的服务器有很多同步任务:(

当发生更改时,服务器会收到推送通知。当我创建定期事件时,服务器会收到推送通知,并尝试通过最后一个syncToken(使用列表事件)获取更新的事件

如何设置最长时间限制,以便获得nextSyncToken而无需无休止的nextPages

我现在的电话:
GET

最近,我处理了一个类似的场景,并提出了以下解决方案:

-将singleEvents设置为false

-对于重复事件,使用timeMin和timeMax分别检索实例

现在您仍然可以使用syncTokens和API的instances()部分,让我们通过查询将重复事件分解为单个事件。如果再次接近timeMax,您只需确保执行完全同步即可


来源:

当您使用同步令牌时,限制每个响应中事件数量的唯一方法是。设置
maxResults
以限制每页获得的结果数量(最多2500个)然后使用
pageToken
,直到您获得另一个
nextSyncToken
,这意味着您处于最后一页,没有更多的事件要同步。每个请求都将有一个
nextSyncToken
nextPageToken
,但两者都没有

GCal为重复事件创建了730个事件,没有任何限制,因此每天的事件值为2年,或者“每个月的第一个星期五”的事件值不到61年键入事件。您可以使用进行检查,并将结果复制到可以搜索和计算其中一个键的实例的位置。默认情况下,每页250个结果,第三页返回230个结果

这不仅仅是通过events list和singleEvents true传递的事件数。您将在GCal日历中看到事件在此时间之后停止,如果您明天再查看,则不会创建另一个每日事件


当然,自上次同步后可能会有许多长事件,但由于您使用推送通知,这不会影响您。

您可以在初始请求上设置时间边界,获取整个范围,然后开始使用同步令牌获取更新。此处有一个指南,其中包含一个代码示例:这在同步期间不起作用创建了一个新的无止境重复事件同步,因为当singleEvents为真时,我会得到无止境的项目。这不是无止境的,只是有点长。你可以分页并实际到达结尾;)你知道,我得到了多少项目吗?我是否必须使用实例方法在结束后获取事件?我当前的解决方案是检索间隔内的所有事件(包括已删除的事件)。所以我们的数据库在这段时间内是最新的。