Node.js 开发非官方的Google Meet API
当谈到虚拟会议时,最简单的方式是使用Google Meet,只需要生成会议链接并将其发送给参与者。但是,反复进行这个过程会很令人沮丧,因此在本文中,我们讨论如何自动化这个过程,并将其作为我们产品/软件的一个特性。
如何自动化这个过程?
为此,我们可以使用Google Meet API,但问题是它并不存在。虽然我们可以借助Google日历API来实现,但对于初学者来说有点困难。
让我们构建一个非官方的Google Meet API,仅限于生成会议链接。
此过程所需的事项 :
启用日历API:
- 客户端ID
- 客户端密钥
- 刷新令牌
步骤1: 访问Google Cloud控制台官方网站https://console.cloud.google.com
步骤2: 如果您有现有的项目,则选择该项目,否则点击新建项目。
步骤3: 选择库选项卡,搜索日历API并启用它。
步骤4: 选择凭据选项卡并创建OAuth客户端ID。
现在我们已经有了客户端ID和客户端密钥,但刷新令牌还未获取。
按照步骤进行:
为了获取刷新令牌,我们将使用PassportJS Google Auth2.0。
步骤1: 进行npm安装:
- express
- passport
- passport-google-oauth20
npm install express passport passport-google-oauth20
步骤2: 将“ https://www.googleapis.com/auth/calendar ”添加到作用域中,以获得可以访问您的Google日历的令牌。
步骤3: 添加您的客户端ID和客户端密钥并运行应用程序。通过Web浏览器访问服务器,以便通过这种方式获取刷新令牌。如果您有困难,您还可以查看上面的视频。
const express = require('express');
const app = express();
const port = 8000;
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;
clientID = "XXXXX7762268-71s6k9joXXXXX2p0a55ba8li85jXXXXX.apps.googleusercontent.com"
clientSecret = "XXXXPX-iXaXXXXXjcoGsnqYQr0rDJeXXXXX"
passport.use(new GoogleStrategy({
clientID: clientID,
clientSecret: clientSecret,
callbackURL: "http://localhost:8000/auth/callback"
},
function (accessToken, refreshToken, profile, cb) {
console.log("refreshToken : ", refreshToken)
return cb();
}
));
app.get('/auth/callback',
passport.authenticate('google', { failureRedirect: '/' })
);
app.get('/auth',
passport.authenticate('google', {
scope: ['profile', 'https://www.googleapis.com/auth/calendar'],
accessType: 'offline',
prompt: 'consent'
}
));
app.get('/', function (req, res) {
res.send("done")
})
app.listen(port, function (err) {
if (err) {
console.log('something wrong in starting server !!!');
return;
}
return console.log("server is up and running on port ", port);
});
注意:
- 将代码中的 ‘X’ 替换为您的客户端密钥和客户端ID以使其运行。
- 在获得刷新令牌后,您不需要再次进行此过程。
安装另一个由我发布的 npm 软件包 google-meet-API,并提供我们拥有的所有细节。
const Meeting = require('google-meet-api').meet;
Meeting({
clientId : 'XXXXdds420ghq7195tfsbi04i7rduaans.apps.googleusercontent.com',
clientSecret : 'XXXXxxeh2mrCZ',
refreshToken : 'XXXXXXXXXCNfW2MMGvJUSk4V7LplXAXXXX',
date : "2020-12-01",
time : "10:59",
summary : 'summary',
location : 'location',
description : 'description'
}).then(function(result){
console.log(result);
})
现在结果是最终的Google会议链接在这里。在此处检查完整的代码:
Github: https://github.com/sumitjangir123/Google-meeting-links
我假设您喜欢本文并且发现文章对您的目的有益。