let scopes = ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"];
if (checker(googleKey)&&checker(jwtClient)) {
jwtClient = new google.auth.JWT(
googleKey.client_email,
null,
googleKey.private_key, scopes,
null
);
jwtClient.authorize(function jwtAuth(err, tokens) {
if (err) {
res.json({ error: "Failed to execute auth command " });
return;
}
let calendar = google.calendar('v3');
calendar.calendarList.list({
auth: jwtClient
}, function(err, resp) {
if (err || !resp.items) {
res.json({ error: "Failed to execute calendar list request " });
return;
}
let calendars = resp.items.map(cal => { if (cal.summary) return { id: cal.id, txt: cal.summary } });
res.json(calendars);
});
});
}
因此,上面的代码在具有启用的日历api的帐户中对日历列表进行了jwt授权调用。我甚至可以看到当我进入我的控制台时发出的成功请求,但是我从nodejs获得的结果是一个空数组,就好像我在api资源管理器中测试它我得到了正确的结果..最新情况怎么样?
答案 0 :(得分:1)
这是一个一年的问题,但也许其他人从答案中受益。您应该在代码中使用“数据”而不是“项目”。这是一个有效的例子:
async function listCalendars() {
// console.log( calendar.calendarList);
calendar.calendarList.list({
auth: oauth2Client,
maxResults: 100
},
function (err, result) {
console.log(result.data.items);
}
);
}
listCalendars().catch(console.error);