【发布时间】:2018-10-01 08:55:22
【问题描述】:
我正在尝试在 Node.js 中使用 google-api-nodejs-client。我对freebusy 查询中的timeMin 参数的格式有疑问。根据docs,该值应为 ISO 格式的时间日期。我试过了,但我得到了一个错误。在event.list 方法中,ISO 格式字符串可以正常工作。
查询freebusy代码:
function freeBusyStatus (auth, calendarId) {
const startDate = new Date('20 February 2018 12:00').toISOString()
const endDate = new Date('20 February 2018 13:00').toISOString()
const check = {
auth: auth,
// timeMin: '2018-02-20T12:00:00+03:00', //not working with same format too
timeMin: new Date('20 February 2018 12:00'),
timeMax: endDate,
items: [{id: calendarId}]
}
calendar.freebusy.query (check, function (err, response) {
if (err) {
console.log ('error: ' + err)
} else {
..some code..
}
})
}
并使用 ISO 格式的日期编码 events.list。此代码有效:
function listEvents(auth, calendarId) {
const eventList = {
auth: auth,
calendarId: calendarId,
timeMin: new Date('20 February 2018 12:00').toISOString(),
maxResults: 10,
singleEvents: true,
orderBy: 'startTime'
}
calendar.events.list(eventList, function(err, response) {
if(err) {
console.log(err)
}
const events = response.data.items
if (events.length != 0) {
..some code..
}
})
}
我认为问题出在日期格式上。当我尝试发送日期为2018-02-20(没有时间)的请求时,响应具有相同的错误Error: Missing timeMin parameter.
我做错了什么?使用 JWT 完成授权。
【问题讨论】:
标签: javascript google-calendar-api google-api-nodejs-client