背景
我正在使用node.js设置推送通知客户端,以便监视用户日历/事件的更改。设置calendar.events.watch
非常完美,我在myapp.com/notifications上收到了sync
通知以及所有表示日历更改的推送通知。
问题
现在,当需要轮询这些更新的事件时,我发现最好是按照Google同步资源的步骤来进行操作,以获取syncToken
并逐步获取事件。在他们的Java示例中,他们如何获得、存储和刷新syncToken
很容易理解。然而,在node.js中,我似乎找不到任何文档(或其他人使用它们)。
问题
如何获得执行日历上的初始同步所需的初始syncToken
?要么我一直在寻找错误的关键字,要么该功能目前不受node.js框架支持,这让我感到惊讶。
上下文
这是我为“完整的初始同步”所解释的代码。这是此处列出的快速入门的延续。
var google = require('googleapis');
...
function listEvents(auth) {
var calendar = google.calendar('v3');
calendar.events.list({
auth: auth,
calendarId: 'ZZZZZZZZZZZZZZZZZZZ',
timeMin: (new Date()).toISOString(),
maxResults: 10,
singleEvents: true,
orderBy: 'startTime'
}, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return;
}
var events = response.items;
console.log(response);
});
}
console.log(response);
语句返回...
{ kind: 'calendar#events',
etag: '"**redacted**"',
summary: 'me@gmail.com',
updated: '2016-07-19T00:34:55.921Z',
timeZone: 'America/New_York',
accessRole: 'owner',
defaultReminders: [ { method: 'popup', minutes: 30 } ],
items:
[ { kind: 'calendar#event',
etag: '"**redacted**"',
id: '**redacted**',
status: 'confirmed',
htmlLink: 'https://www.google.com/calendar/event?eid=**redacted**',
created: '2016-07-19T00:34:55.000Z',
updated: '2016-07-19T00:34:55.715Z',
summary: 'Thing',
creator: [Object],
organizer: [Object],
start: [Object],
end: [Object],
iCalUID: '**redacted**@google.com',
sequence: 0,
reminders: [Object] } ] }
在这里找到那个nextSyncToken
吗?
google.calendar('v3');
和calendar.events.list(...)
的文档?我在这里找到了gapi.client.calendar.events.list()
的文档:https://developers.google.com/google-apps/calendar/quickstart/js。你可能需要嗅探网络并查看实际发送和接收的 HTTP 请求。 - jfriend00