はじめに
有料のアカウントを使用していて、会議室はそのアカウントで作成する運用となっています。その会議室に人が集まってきたりしたら、雑談したいので入退出をslackで監視したいな、という要望で作業しました。メモとして残します。
会議室を作るアカウントでWebhookを使い、イベントをGASに飛ばしてGAS側でSlackに通知を出します。
目次
Slackの設定
他の方のわかりやすい記事があったので引用します。@ykhiraoさん
Slack API 推奨Tokenについて
GASの設定
- シートの作成
- Slackライブラリの追加
- ウェブアプリケーションとして導入
Zoomの設定
- マーケットプレイスへアクセス
- Webhookの設定
- 通知を飛ばしたいイベントの登録をする
内容
GASの設定
- シートの作成
1-a.シートを作成して名称、シート名を適当に変更
1-b.スクリプトエディタを起動する
1-c.プロジェクト名と、スクリプト名を適当に変更
1-d.doPost関数を作成する
sheetUrlのところは、1-aで作成したシートのurlにする。シート名も作成したシート名に変更。
slackのTokenはslackの設定で作成したものに置き換える
var sheet="meetings";
var sheetUrl="https://docs.google.com/spreadsheets/d/14xxxxxxxxxxxxxxxxxxuU/";
var ss = SpreadsheetApp.openByUrl(sheetUrl).getSheetByName(sheet);
function doPost(e) {
//Zoom Webhookから受信
const jsonString = e.postData.getDataAsString();
const data = JSON.parse(jsonString);
var event = data.event;
var topic = data.payload.object.topic;
var username = data.payload.object.participant.user_name;
//Zoomのeventを取得し、動作を決定する
ss.insertRows(1,1);
ss.getRange(1,1).setValue(jsonString);
var message = "";
switch(event) {
case 'meeting.started':
message = '新しく' + topic + 'のZoomミーティングが開始されました';
break;
case 'meeting.ended':
message = topic + 'のZoomミーティングが終了しました';
break;
case 'meeting.participant_joined':
message = topic + 'のZoomミーティングに' + username + 'が参加しました';
break;
case 'meeting.participant_left':
message = topic + 'のZoomミーティングから' + username + 'が退出しました';
break;
default:
break;
}
sendSlack(event,message);
}
function sendSlack(meetingname,message){
var token = "xoxp-000000000000-000000000000-000000000000-00000000000000000000000000000000"; //slackApp token
var slackApp = SlackApp.create(token);//SLack App
var channel="チャンネルの名前";//通知するチャンネル
return slackApp.postMessage(channel,message);
}
2. Slackライブラリの追加
2-a.リソース - ライブラリ
2-b. Add a library のテキストボックスに[M3W5Ut3Q39AaIwLquryEPMwV62A3znfOO]を入れて追加
1on93YOYfSmV92R5q59NpKmsyWIQD8qnoLYk-gkQBI92C58SPyA2x1-bq
3. ウェブアプリケーションとして導入
3-a. 公開 ー ウェブアプリケーションとして導入
3-b. Who has access to the app をAnyone, even anonymousにする
3-c. 実行許可を与える
3-d. デプロイされるので、urlをコピーしておく
Zoomの設定
-
マーケットプレイスhttps://marketplace.zoom.us
にアクセスする。監視したいZoomのIDでログインして、Develop -> build Appを選ぶ
- Webhookの設定
2-a. Webhook Only でCreate を選ぶ
2-b. 名前をつける
2-c. Basic Information,Developer Contact Informationの入力をする。
3.通知を飛ばしたいイベントの登録をする
3-a. Event Subscriptionsのスイッチをオンにする。
3-b. イベントを選ぶ。
3-b. Event notification endpoint にGoogle ウェブアプリケーションのURLを設定してsaveボタンを押す
以上で設定は完了です。Zoomで会議を作成すると指定したSlackのチャンネルに通知が飛びます