筆記:使用google calendar API生成google meet會議室

最近有需求想要產生google meet會議室連結,網路上資料,所以就嘗試使用google calendar API來生成會議室,以下分享。


以Node.js來存取google calendar的步驟如下
  1. 要使用OAuth2.0機制取回token來存取google calendar
    使用api key的作法會無法存取google calendar
    可以使用 官方這篇範例code 修改一下來取回 token,取回的token會儲存在token.json中。

    前一篇分享node.js存取google calendar API,是在測試gcp的service account的部份,只是因為我是使用google個人帳戶,貌似沒有辦法透過呼叫calendar API的方式來讓它生成google meeting會議室。

  2. 因為使用oauth2的token,所以就改了一下auth參數的初始化
    const { google } = require('googleapis'); const auth = new google.auth.OAuth2();
    const content = fs.readFileSync('token.json', { encoding: 'utf8', flag: 'r' });
    auth.setCredentials(JSON.parse(content));
  3. 使用google calendar API要用google.calendar.events.insert來新增日曆事件
  4. 新增日曆事件的時候需要給予conferenceDataVersion
    {
    calendarId: id,
    conferenceDataVersion: 1,
    requestBody: resource,
    }
  5. resource部份則是必須要指定conferenceSolutionKey並給予自訂的requestId
    conferenceData: {
    createRequest: {
    requestId: reqId,
    conferenceSolutionKey: {
    type: "hangoutsMeet"
    },
    },
    },
經過上述幾個步驟,所生成的日曆事件就會有hangoutLink這個欄位,裡頭放置google meet的會議室連結。

其他

實際應場景其實還有生成Zoom會議室的供,不過因為zoom只有整合在GSuite UI部份,沒有納入google calendar api中,所以就無法直接生。

留言