Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 谷歌日历API V3没有';t尊重nodejs Express应用程序中的timeMin timeMax参数_Node.js_Express_Google Calendar Api_Google Api Nodejs Client - Fatal编程技术网

Node.js 谷歌日历API V3没有';t尊重nodejs Express应用程序中的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

我已经设法在纯nodeJs环境中获得了示例中提到的两个日期之间的所有事件

但是,当我使用与nodeJs Express应用程序相同的cording时,它不尊重timeMin和timeMax参数

相反,我从日历上创建第一个事件的日期获取所有事件。 这是我的代码块的样子

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;