【发布时间】:2020-03-29 08:58:50
【问题描述】:
我确实尝试过,但无法自己弄清楚如何使用 Directory API 检索资源日历的数据。
我想要什么:
- 使用具有域范围委派的服务帐户检索我公司资源日历的数据
我有什么:
具有域范围委派的服务帐户 (+ credentials.json)
我公司资源日历的日历ID
我是非管理员用户,据我所知,服务帐户必须模拟用户。 我是否需要成为管理员用户才能管理和查看资源日历的数据并与服务帐户共享? 我使用 jwtClient 进行授权,但我不知道是否必须使用 Directory API、Google Calendar API 或两者才能使其工作。
我首先尝试使用 Google Calendar API,但它不起作用,现在我想我必须使用 Directory API 获取资源日历。 这就是我目前所拥有的:
let express = require('express');
let app = express();
app.set('view engine', 'ejs');
let {google} = require('googleapis');
const calendar = google.calendar('v3');
const port = 3000;
const key = require('./credentials.json');
const jwtClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
[ 'https://www.googleapis.com/auth/calendar'],
null
);
jwtClient.authorize(function(err, tokens) {
if (err) {
console.log(err);
} else {
console.log("Authorization worked!");
console.log(tokens);
}
});
app.get('/', function(req, res) {
calendar.events.list({
auth: jwtClient,
calendarId: 'xxxx@resourcexxx.com',
timeMin: (new Date()).toISOString(),
maxResults: 5,
singleEvents: true,
orderBy: 'startTime'
}, function(err, resp) {
res.json(resp);
});
});
app.use(express.static('public'));
app.listen(port, function(err){
if (!err) {
console.log("App is running on port", port);
} else {
console.log(JSON.stringify(err));
}
});
任何帮助将不胜感激。提前致谢!
【问题讨论】:
-
请编辑您的问题并包含您的代码并描述您在使用该代码时遇到的问题
-
你好,安。您能否: 1. 提供您已经使用过的代码,与您刚刚创建的问题相关。 2. 准确描述您想从公司日历中获取哪些数据。这将有助于我们知道要给出什么答案。谢谢!
-
你是对的。我编辑了该部分,但无法使用资源日历的 calendar.events.list 方法出现问题。
标签: node.js google-calendar-api google-admin-sdk