ZoomからMTGが作成されたら、Googleリソースカレンダーに予定を自動登録する

目次

ZoomからMTGが作成されたら、Googleリソースカレンダーに予定を自動登録する

Google App Scriptを設定する

リースカレンダーを作成し、カレンダーIDを確認する

管理コンソールから、Zoom用リソースカレンダーを作成します
カレンダー設定を表示、カレンダーIDを確認します

moment.jsを利用できるようにする

  1. Google Apps Scriptファイルを作成します
  2. リソース→【ライブラリ】をクリックします
  3. [Add a library]欄に、「MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48」と入力し、【追加】をクリックします
  4. 下記のようなスクリプトを作成します
    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;
          
      }
      
    }
  5. 「公開」→【ウェブアプリケーションとして公開】をクリックします
  6. 「Who has access to the app」を「Anyone,even anonymous」を選択し、【Deploy】をクリックします
  7. 表示されたURLをメモしておきます

Zoom 側でアプリを作成する

  1. Zoom App Marketplaceサイトにアクセスします
  2. 「Develop」→【Build App】をクリックします
  3. 「Webhook Only」の【Create】をクリックします
    ※Createがグレーアウトしている場合には、役割の管理で「デベロッパー向けZoom」をONにします
  4. App Nameを入力し、【Create】をクリックします
  5. 必須項目を入力し、【Continue】をクリックします
  6. 「Event Subscriptions」をONにします
  7. 【Add new event subscription】をクリックします
  8. Subscription Nameに任意の名前を入力し、「Event notification endpoint URL」に事前にメモしたURLを入力します
  9. 【Add events】をクリックします
  10. 以下3つにチェックを入れ、【Done】をクリックします
    Meeting has been created
    Meeting has updated
    Meeting has been deleted
  11. 【Save】をクリックします
  12. 【Continue】をクリックします
  13. 作成が完了します

Zoomからミーティングを作成する

Zoomから新しいミーティングをスケジュールします。
少し待つとGoogleカレンダー側に予定が登録されます

Zoomからスケジュールしたミーティングを削除します
しばらくするとGoogleカレンダーから削除されます
ただし同じ時間の同じタイトルの場合は、両方削除されます

ミーティングの更新はこのスクリプトでは対応していません(笑)

 

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次