目次
ZoomからMTGが作成されたら、Googleリソースカレンダーに予定を自動登録する
Google App Scriptを設定する
リースカレンダーを作成し、カレンダーIDを確認する
管理コンソールから、Zoom用リソースカレンダーを作成します
カレンダー設定を表示、カレンダーIDを確認します
moment.jsを利用できるようにする
- Google Apps Scriptファイルを作成します
- リソース→【ライブラリ】をクリックします
- [Add a library]欄に、「MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48」と入力し、【追加】をクリックします
- 下記のようなスクリプトを作成します
function doPost(e) { const sheet = SpreadsheetApp.getActiveSheet(); //Zoom Webhookから受信 const jsonString = e.postData.getDataAsString(); const data = JSON.parse(jsonString); var calenderID = ""; var event = data.event; var op = data.payload.operator; var startTime = data.payload.object.start_time; var duration = data.payload.object.duration; var topic = data.payload.object.topic; //オペレータの値を元にカレンダーを決定する switch (op) { case '[email protected]': calenderID = "[email protected]"; //←確認したリソースカレンダーIDを記述 break; default: break; } var startMTG = Moment.moment(startTime); var endMTG = startMTG.add(duration,"minutes"); var calender = CalendarApp.getCalendarById(calenderID); var descStr = "Zoom API MTG " + startTime; //Zoomのeventを取得し、動作を決定する switch(event) { case 'meeting.created': calender.createEvent(topic, new Date(startTime), new Date(endMTG), {description:descStr}); break; case 'meeting.deleted': var events = calender.getEventsForDay(new Date(startTime)); for (var i in events){ var eventId = events[i].getId(); var title = events[i].getTitle(); var desc = events[i].getDescription(); if (title == topic && desc == descStr) { var event = calender.getEventById(eventId); event.deleteEvent(); } } break; default: break; } }
- 「公開」→【ウェブアプリケーションとして公開】をクリックします
- 「Who has access to the app」を「Anyone,even anonymous」を選択し、【Deploy】をクリックします
- 表示されたURLをメモしておきます
Zoom 側でアプリを作成する
- Zoom App Marketplaceサイトにアクセスします
- 「Develop」→【Build App】をクリックします
- 「Webhook Only」の【Create】をクリックします
※Createがグレーアウトしている場合には、役割の管理で「デベロッパー向けZoom」をONにします
- App Nameを入力し、【Create】をクリックします
- 必須項目を入力し、【Continue】をクリックします
- 「Event Subscriptions」をONにします
- 【Add new event subscription】をクリックします
- Subscription Nameに任意の名前を入力し、「Event notification endpoint URL」に事前にメモしたURLを入力します
- 【Add events】をクリックします
- 以下3つにチェックを入れ、【Done】をクリックします
Meeting has been created
Meeting has updated
Meeting has been deleted
- 【Save】をクリックします
- 【Continue】をクリックします
- 作成が完了します
Zoomからミーティングを作成する
Zoomから新しいミーティングをスケジュールします。
少し待つとGoogleカレンダー側に予定が登録されます
Zoomからスケジュールしたミーティングを削除します
しばらくするとGoogleカレンダーから削除されます
ただし同じ時間の同じタイトルの場合は、両方削除されます
ミーティングの更新はこのスクリプトでは対応していません(笑)