首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增量同步忽略原始筛选器。

增量同步忽略原始筛选器。
EN

Stack Overflow用户
提问于 2021-07-26 07:04:42
回答 1查看 125关注 0票数 1

我们用这种方式来管理日历同步-

  1. 先与某些筛选器(timeMin & timeMax)同步,然后获得nextSyncToken
  2. 当事件监视程序触发时,运行增量同步。增量同步忽略原始筛选器,并从不同日期返回更新的事件。

这是预期的行为吗?

示例-在日期2021-07-25T00:00:00 - 2021-07-25T20:00:00上运行第一次同步,获取nextSyncToken = xxxxx。在2021-08-08添加一个新事件。运行与nextSyncToken = xxxxx的增量同步,将返回该新事件,尽管它本应被过滤掉。(在nodejs上测试&在Google的api参考页面上测试)

根据Jose的请求,这是请求和响应:

第一次请求:

代码语言:javascript
复制
calendarId: ******,
q: importantEventsQuery,
timeMax: 2021-07-25T20:00:00+03:00,
timeMin: 2021-07-25T10:00:00+03:00

第一次答复:

代码语言:javascript
复制
{
"kind": "calendar#events",
"etag": "\"p320******\"",
"summary": "a******",
"updated": "2021-08-09T04:39:45.696Z",
"timeZone": "******",
"accessRole": "owner",
"defaultReminders": [
    {
       "method": "popup",
       "minutes": 15
      }
],
"nextSyncToken": "**********uAE=",
"items": []
}

第二次请求:

代码语言:javascript
复制
calendarId: ******,
syncToken: **********uAE=

第二次答复:

代码语言:javascript
复制
{
 "kind": "calendar#events",
 "etag": "\"p320cltebhuhv40g\"",
 "summary": "alon.sade@verizonmedia.com",
 "updated": "2021-08-09T04:39:45.696Z",
 "timeZone": "Asia/Jerusalem",
 "accessRole": "owner",
 "defaultReminders": [
  {
   "method": "popup",
   "minutes": 15
  }
 ],
 "nextSyncToken": "**********uAE=",
 "items": []
}

现在,我在与请求不同的日期添加了一个新事件,并且没有使用"importantEventsQuery“术语

第三个请求:等于第二个请求。

第三次答复:

代码语言:javascript
复制
{
 "kind": "calendar#events",
 "etag": "\"p32k******\"",
 "summary": "******",
 "updated": "2021-08-09T06:42:13.241Z",
 "timeZone": "******",
 "accessRole": "owner",
 "defaultReminders": [
  {
   "method": "popup",
   "minutes": 15
  }
 ],
 "nextSyncToken": "*****=",
 "items": [
  {
   "kind": "calendar#event",
   "etag": "\"******\"",
   "id": "******",
   "status": "confirmed",
   "htmlLink": "https://www.google.com/calendar/event?eid=******",
   "created": "2021-08-09T06:42:12.000Z",
   "updated": "2021-08-09T06:42:12.725Z",
   "summary": "dd",
   "creator": {
    "email": "******",
    "self": true
   },
   "organizer": {
    "email": "******",
    "self": true
   },
   "start": {
    "dateTime": "2021-08-09T08:30:00+01:00"
   },
   "end": {
    "dateTime": "2021-08-09T09:00:00+01:00"
   },
   "iCalUID": "******",
   "sequence": 0,
   "reminders": {
    "useDefault": true
   },
   "eventType": "default"
  }
 ]
}
EN

回答 1

Stack Overflow用户

发布于 2021-07-28 08:16:22

这是正常的,以便保持数据的一致性。

这是预期的行为,因为您正在添加一个新资源,为了保持一致性,它可能会重新排序结果。

如果您想保持应用程序的一致性,我强烈建议您在添加资源时,尝试发出包括筛选器在内的新请求。

查看一下Events: list > syncToken property,它的状态是It makes the result of this list request contain only entries that have changed since then,这意味着您应该像前面所说的那样,在每次更改时提出一个新请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68525720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档