COPYRIGHT © SONICJAM ALL RIGHTS RESERVED.
2018
29
JAN
CATEGORY:
TECH Tips
掃除当番をGASを使ってSlackに自動通知させる

弊社ではオフィスの掃除は当番制で持ち回りとなっています。そこでGoogle apps scriptを使って、Slackに掃除当番を自動通知するbotを作成してみましたので、その方法をご紹介します。

以下目次です。

目次

はじめに

今回はタイトルのように、Google apps script(以下省略:GAS)を使ってGoogleカレンダーに登録されている掃除当番の予定をSlackに自動通知させます。

本記事では、Googleカレンダーに掃除当番の予定が入っていることを前提に進めます。
また、予定に担当者をゲストとして招待しておくことを前提とします。

今回使うもの

  • GAS
  • SlackのIncoming WebHooks

上記2つを使って、連携・自動通知を行います。

手順

1.事前準備

Googleスプレッドシートで以下のようなデータを用意します。


email slackId
hoge@hoge.co.jp sonicjam01
fuga@fuga.co.jp sonicjam02
 

ちなみに弊社は1Fと2Fで当番場所が分かれているので、下記のようなGoogleカレンダーの2つの予定を元に通知をさせます。





2.SlackのIncoming WebHooksの登録

次にSlackでIncoming WebHooksを登録します。


I. 自動通知用のチャンネルを作成。

Slackでチャンネルを作成します。


Ⅱ. Incoming WebHooksを設定。

下記のIncoming WebHooksの設定ページへ飛びます。
https://slack.com/apps/A0F7XDUAZ--web-
「Add Configuration」ボタンを選択し、 投稿したいチャンネルを選択して「Add Incoming WebHooks integration」ボタンを押します。
作成完了後、「Webhook URL」の項目に出てくるURLを後で使用するので、メモしておきましょう。




3. カレンダーIDの取得

今回は掃除用当番用のカレンダーから情報を取得します。
Googleカレンダーの「オーバーフローメニュー>共有と設定」から、必要なカレンダーの「カレンダーID」をメモしておきます。




4. GASの制作

Googleスプレッドシートを開いて、「ツール>スクリプトエディタ」を選択します。
スクリプトエディタが開くので、そこに記述していきます。コードは以下になります。

jsfiddle:https://jsfiddle.net/puq6qxch/2/


Googleカレンダーのゲストを取得する際には、getGuestList()を使用します。今回はgetEmail()でゲストのメールアドレスを取得していますが、他にもゲストの出欠ステータスなども取得できます。




5. 投稿の実行

画面上部の実行ボタンを押すことで、コードを実行できます。
初回実行時は実行の許可を求められるので、許可します。


トリガーを設定して自動投稿させる場合

画面上部の「編集>現在のプロジェクトのトリガー」を押し、「トリガーが設定されていません。今すぐ追加するにはここをクリックしてください。」のリンクをクリックします。



「現在のプロジェクトのトリガー」のウィンドウが開いたら、Slackに通知させたい時間を選択します。
この設定で、指定した時間内にこのスクリプトが実行され、Slackに投稿されるようになります。



※細かい時間指定をしたい場合は、スクリプト側で記述する必要がありますが、今回は割愛します。

完成イメージは下記のようになります。


こんな感じで熱く掃除当番をリマインドしてくれるbotができました。


参考記事


最後に

GASはサーバーなしでプログラムが動くので、導入もしやすく、気軽に手を付けられます
すでに試している方も多く、導入記事なども豊富にあるので、エンジニア以外の人でも触りやすいかなと思います。
また、Slack apiのOutgoing WebHooksを使うとSlackの投稿を取得して、それに反応させることもできるので、機能拡張したりするのも良いかなと思いました。

CATEGORY

×
CATEGORY
COPYRIGHT © SONICJAM ALL RIGHTS RESERVED.