目次
ZoomからMTGが作成されたら、Googleリソースカレンダーに予定を自動登録する
Google App Scriptを設定する
リースカレンダーを作成し、カレンダーIDを確認する
管理コンソールから、Zoom用リソースカレンダーを作成します
カレンダー設定を表示、カレンダーIDを確認します
moment.jsを利用できるようにする
- Google Apps Scriptファイルを作成します
- リソース→【ライブラリ】をクリックします
- [Add a library]欄に、「MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48」と入力し、【追加】をクリックします
- 下記のようなスクリプトを作成します
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859function 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) {calenderID = "hogehoge@resource.calendar.google.com"; //←確認したリソースカレンダー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カレンダーから削除されます
ただし同じ時間の同じタイトルの場合は、両方削除されます
ミーティングの更新はこのスクリプトでは対応していません(笑)