我尝试在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,我发现可以获取所有事件。我怎么能得到它?
访问私人日历中的所有活动需要哪些代码?
答案 0 :(得分:0)
要访问私人日历,您需要通过身份验证才能查看/查看此日历。您可以在此处使用OAuth或服务帐户,因为您的应用程序发送给Google Calendar API的每个请求都必须包含授权令牌。该令牌还可识别您的Google应用程序。要了解有关详情,请查看此documentation。
我建议您查看此Github,详细了解如何在Nodej中使用Calendar API,包括如何在此处使用OAuth。
有关详细信息,请查看这些相关的SO问题。