Node.js 谷歌日历API V3没有';t尊重nodejs Express应用程序中的timeMin timeMax参数
我已经设法在纯nodeJs环境中获得了示例中提到的两个日期之间的所有事件 但是,当我使用与nodeJs Express应用程序相同的cording时,它不尊重timeMin和timeMax参数 相反,我从日历上创建第一个事件的日期获取所有事件。 这是我的代码块的样子Node.js 谷歌日历API V3没有';t尊重nodejs Express应用程序中的timeMin timeMax参数,node.js,express,google-calendar-api,google-api-nodejs-client,Node.js,Express,Google Calendar Api,Google Api Nodejs Client,我已经设法在纯nodeJs环境中获得了示例中提到的两个日期之间的所有事件 但是,当我使用与nodeJs Express应用程序相同的cording时,它不尊重timeMin和timeMax参数 相反,我从日历上创建第一个事件的日期获取所有事件。 这是我的代码块的样子 function listEvents(auth) { var calendar = google.calendar('v3'); calendar.events.list({ auth: auth, cal
function listEvents(auth) {
var calendar = google.calendar('v3');
calendar.events.list({
auth: auth,
calendarId: 'primary',
timeMin: (new Date(Date.parse("2018-01-22"))).toISOString(),
timeMax: (new Date(Date.parse("2018-02-27"))).toISOString(),
singleEvents: true,
orderBy: 'startTime'
}, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return;
}
var events = response.items;
if (events.length === 0) {
console.log('No upcoming events found.');
}
else {
// Do Some Stuff ...............
}
});
}
我在这里遗漏了什么?初学者示例似乎不正确,但与文档相符 google auth库的V0.x使用请求库,因此传递querystring选项的技巧如下:
calendar.events.list(
{
auth: auth,
calendarId: 'primary',
},
{
qs: {
timeMin: (new Date(Date.parse("2018-01-22"))).toISOString(),
timeMax: (new Date(Date.parse("2018-02-27"))).toISOString(),
singleEvents: true,
orderBy: 'startTime'
}
}, function(err, response) {
...
答案url是“快速入门”使用的是旧版本的google auth库。这对我来说很有用: 将库更新为最新版本
npm i google-auth-library@latest
在快速启动文件中,按如下方式更新代码
let auth = google.auth;
及
感谢并修改自:您使用Express多久了?尝试将日期参数更改为NodeJS快速启动中使用的“new date()).toISOString()。如果有效,则说明您的日期格式有问题。我也试过了。你不认为这是他们的库问题吗?bcz它仍然被标记为alpha版本。nodejs quickstart工作正常是的,工作正常。尝试在express Apps中使用timeMin和timeMax运行相同的脚本。这没有帮助,我仍然得到超出我界限的结果。。。。这就是我的事件列表api调用的样子
const start=startDate.toISOString();const end=endDate.toISOString();返回此.client.events.list({calendarId:process.env.GOOGLE\u CALENDAR\u ID,timeMin:start,timeMax:end})
let events = response.data.items;