你好SO的人,
我正在使用带有node.js的Google Calendar API,在小窗口(约24小时)内为与事件相关的推送通知注册webhook。我的timeMin
和timeMax
参数未受到尊重,我的webhook正在受到日历的任何更改(在边界和界限内)的影响。
我尝试过包含singleEvents : true
,从时间戳中删除ms,各种时区偏移字符串 - Z
(即.toISOString()
),+00:00
和+0000
- 我只使用一次性活动(没有经常性事件)。我使用的是有效的OAuth令牌,而不是服务帐户。我的请求工作正常,目前看起来像这样:
GCal.events.watch({
auth: _oa2Client,
calendarId : calID,
singleEvents : true,
timeMax : timeMax.toISOString().replace('Z', '+00:00'),
timeMin : timeMin.toISOString().replace('Z', '+00:00'),
resource : {
id : channelID,
type: 'web_hook',
address : config.google.CALENDAR_EVENTS_WEBHOOK_URL,
token: querystring.stringify(token),
expiration: timeMax.getTime()
}
}, callback);
对于我的生活,我无法弄清楚我做错了什么。谁能指出我正确的方向?帮助类似events.list边界问题的解决方案在这里没有帮助。
答案 0 :(得分:1)
解决此类问题的一个好方法是以交互方式使用Google API Explorer:https://developers.google.com/apis-explorer/#p/calendar/v3/calendar.events.watch 您可以尝试timeMin和timeMax的值,并查看他们的文档。
文档说要使用RFC3339时间戳,这可能与您使用的ISO格式不同。