我们用这种方式来管理日历同步-
nextSyncToken这是预期的行为吗?
示例-在日期2021-07-25T00:00:00 - 2021-07-25T20:00:00上运行第一次同步,获取nextSyncToken = xxxxx。在2021-08-08添加一个新事件。运行与nextSyncToken = xxxxx的增量同步,将返回该新事件,尽管它本应被过滤掉。(在nodejs上测试&在Google的api参考页面上测试)
根据Jose的请求,这是请求和响应:
第一次请求:
calendarId: ******,
q: importantEventsQuery,
timeMax: 2021-07-25T20:00:00+03:00,
timeMin: 2021-07-25T10:00:00+03:00第一次答复:
{
"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": []
}第二次请求:
calendarId: ******,
syncToken: **********uAE=第二次答复:
{
"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“术语
第三个请求:等于第二个请求。
第三次答复:
{
"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"
}
]
}发布于 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,这意味着您应该像前面所说的那样,在每次更改时提出一个新请求。
https://stackoverflow.com/questions/68525720
复制相似问题