如何从Google Calendar API获取Node.js的承载价值

时间:2016-11-21 17:16:44

标签: javascript node.js calendar google-api google-calendar-api

我尝试在Node.js中从Google Calendar API获取活动,但我无法理解OAuth2的工作原理。

我准备回调到路由器以获取代码并且运行良好:

router.get('/oauth2callback', function(req, res) {

   // store code into database with user id.
});

从用户那里获取事件:

user.findById(req.session.user_id)
    .then(function (data) {

        auth.setCredentials(tokens);
            user.getCalendars(req.session.user_id)
                .then(function (data) {

                    var promises = [];

                    for (var i = 0; i < data.length; i++)
                        promises.push(createPromise(data[i].cal_id));

                    promise.all(promises)
                           .then(function (data) {

                               res.json(data);
                           })
                           .catch(function (err) {

                               res.json(err);
                           });
                })
                .catch(function (err) {

                    res.json(err);
                });
        });

function createPromise(calendarId) {

    return new promise(function (resolve, reject) {

        calendar.events.list({ calendarId : calendarId, key : '{MY_API_KEY}' }, { auth: auth }, function (err, result) {

            resolve(result);
        });
    });
}

但它显示了公共日历。我希望得到所有活动,包括私人日历。

如果我可以获得Bearer Header for Authorization,我发现可以获取所有事件。我怎么能得到它?

访问私人日历中的所有活动需要哪些代码?

1 个答案:

答案 0 :(得分:0)

要访问私人日历,您需要通过身份验证才能查看/查看此日历。您可以在此处使用OAuth或服务帐户,因为您的应用程序发送给Google Calendar API的每个请求都必须包含授权令牌。该令牌还可识别您的Google应用程序。要了解有关详情,请查看此documentation

我建议您查看此Github,详细了解如何在Nodej中使用Calendar API,包括如何在此处使用OAuth。

有关详细信息,请查看这些相关的SO问题。