📜  在 Node.js 中开发非官方的 Google Meet API

📅  最后修改于: 2022-05-13 01:56:54.920000             🧑  作者: Mango

在 Node.js 中开发非官方的 Google Meet API

谈到虚拟会议,想到的最简单的方法就是 Google Meet,只需生成会议链接并将其发送给参与者即可。但是一遍又一遍地这样做是令人沮丧的,所以在本文中,我们将讨论如何自动化这个过程并使其成为我们产品/软件的一个功能。

如何自动化这个过程?

因此,为此,我们可以使用 Google Meet API,但问题是它不存在。虽然我们可以借助谷歌日历 API 来做到这一点,但对于初学者来说有点难以理解。

让我们为 google meet 构建一个仅限于生成会议链接的非官方 API。

此过程所需的东西

启用日历 API:

  • 客户编号
  • 客户秘密
  • 刷新令牌

如果您不知道如何启用 Calendar API 以及如何获取它们,请不要担心,请查看视频或按照以下步骤操作:

第一步:访问谷歌云控制台官网 https://console.cloud.google.com

第 2 步:如果您有一个现有项目,则选择该项目或单击一个新项目。

第 3 步:选择库选项卡,搜索日历 API 并启用它。

第 4 步:选择凭证选项卡并创建 OAuth 客户端 ID。

现在我们有了客户端 ID 和客户端密码,但仍然缺少刷新令牌。

按照分步流程进行操作:

对于刷新令牌,我们将使用 passportJS google auth2.0。

第 1 步:执行 npm 安装:

  • 表示
  • 护照和,
  • 护照-谷歌-oauth20
npm install express passport passport-google-oauth20

第2步:将“ https://www.googleapis.com/auth/calendar ”添加到获取可以访问您的谷歌日历的令牌的范围内。

第 3 步:添加您的客户端 ID 和客户端密码并运行应用程序。通过您的网络浏览器访问服务器,这样您就可以获得刷新令牌。如果你被困在某个地方,你也可以看看上面的视频。

Javascript
const express = require('express');
const app = express();
const port = 8000;
const passport = require('passport');
var 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);
});


Javascript
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);
})


注意

  • 将代码中的“X”替换为您的客户端密钥和客户端 ID 以使其运行。
  • 获得刷新令牌后,您无需一次又一次地执行此过程。

再安装一个由我 google-meet-api 发布的 npm 包,并将我们拥有的所有详细信息提供给它。

Javascript

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);
})

现在结果是这里的最终谷歌会议链接。在此处查看完整代码:

Github:https://github.com/sumitjangir123/Google-meeting-links

我假设您喜欢这篇文章并发现这些材料对您的目的有益。