将访问令牌传递给 google api (node.js)
Passing access token to google api (node.js)
我正在尝试通过传递 access_token 来验证 google api 请求,但我收到来自 google 的无效凭据错误。我知道访问令牌是正确的,但我认为我传递的不正确。传递访问令牌的正确方法是什么?
这是我的代码,密切基于 Google's quickstart guide
listEvents: function(req, res) {
var calendar = google.calendar('v3');
calendar.events.list({
access_token: req.user.accessToken,
calendarId: 'primary',
timeMin: (new Date()).toISOString(),
maxResults: 10,
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 {
console.log('Upcoming 10 events:');
for (var i = 0; i < events.length; i++) {
var event = events[i];
var start = event.start.dateTime || event.start.date;
console.log('%s - %s', start, event.summary);
}
}
});
},
更新:我意识到我的 accessToken 已经过期了。上面的代码实际上显示了传递访问令牌的正确方法。但是,如果此访问令牌已过期,您必须使用刷新令牌获取一个新的。
我正在尝试通过传递 access_token 来验证 google api 请求,但我收到来自 google 的无效凭据错误。我知道访问令牌是正确的,但我认为我传递的不正确。传递访问令牌的正确方法是什么?
这是我的代码,密切基于 Google's quickstart guide
listEvents: function(req, res) {
var calendar = google.calendar('v3');
calendar.events.list({
access_token: req.user.accessToken,
calendarId: 'primary',
timeMin: (new Date()).toISOString(),
maxResults: 10,
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 {
console.log('Upcoming 10 events:');
for (var i = 0; i < events.length; i++) {
var event = events[i];
var start = event.start.dateTime || event.start.date;
console.log('%s - %s', start, event.summary);
}
}
});
},
更新:我意识到我的 accessToken 已经过期了。上面的代码实际上显示了传递访问令牌的正确方法。但是,如果此访问令牌已过期,您必须使用刷新令牌获取一个新的。