我有一个应用程序,客户可以选择一个时间来预约视频,我只想向他们发送 Google Hangouts Meet 链接。为此,我在本文档https://developers.google.com/calendar/create-events的 JavaScript 代码中使用了谷歌日历 API,它可以正常工作,我可以很好地创建链接。但我的问题是,有什么方法可以根据他们在服务器端(节点 js)上使用 Gsuite 帐户选择的时间创建链接,然后在最后向他们发送链接?(我不想在他们的 Google 日历上创建活动或从 Google 向他们发送通知)我不希望用户使用 Google 登录页面提示进行授权。我只需要创建链接并将其发送给客户端。这可能吗?我很感激任何建议。
问问题
240 次
1 回答
0
使用本指南中的代码使用服务帐户进行身份验证,并从 google-auth nodejs 存储库中搜索此示例以查看如何设置subject
用于模拟用户的参数,我能够获得经过身份验证的 JWT 身份验证客户端可用于发出 google API 请求的对象,例如列出模拟用户的事件:
let google = require('googleapis').google;
let privatekey = require("./[JSON-FILENAME].json");
// configure a JWT auth client
let jwtClient = new google.auth.JWT(
privatekey.client_email,
null,
privatekey.private_key,
['https://www.googleapis.com/auth/calendar'],
'[EMAIL-OF-USER-TO-IMPERSONATE]'
);
//authenticate request
jwtClient.authorize(function (err, tokens) {
if (err) {
console.log(err);
return;
} else {
console.log("Successfully connected!");
}
});
listEvents(jwtClient);
function listEvents(auth) {
const calendar = google.calendar({ version: 'v3', auth });
calendar.events.list({
calendarId: 'primary',
timeMin: (new Date()).toISOString(),
maxResults: 10,
singleEvents: true,
orderBy: 'startTime',
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
const events = res.data.items;
if (events.length) {
console.log('Upcoming 10 events:');
events.map((event, i) => {
const start = event.start.dateTime || event.start.date;
console.log(`${start} - ${event.summary}`);
});
} else {
console.log('No upcoming events found.');
}
});
}
于 2020-05-05T09:12:52.050 回答