【GAS × Slack通知】GASのスケジュール機能を使用してSlack通知を送る方法と手順
GASプロジェクトの作成からSlack API(Incoming Webhook)の設定 、GASのスケジュール機能の設定まで、具体的な手順を説明します。
2023年06月02日
前提
- Slackのワークスペースが存在する
- すこしでもプログラミングに理解がある(初心者OK)
Slack側の設定
以前、【Firebase】Firestoreのトリガーを利用しSlack通知する にてWebhook URLの生成までは記事にしているので Slack側の設定
まで進めてください。
https://hooks.slack.com/services/XXX/YYY/ZZZ
というURLが設定されていればOKです。
実装手順
以下の手順に従ってください
- Google ドライブにアクセスします。
- 「新規」ボタンをクリックし、ドロップダウンメニューから「その他」を選択します。
- メニューから「Google Apps Script」を選択します。
- 新しいウィンドウが表示されるので、プロジェクト名を入力します。適切な名前を選んでください。
- プロジェクトが作成されると、GASのエディタが開きます。ここでスクリプトのコードを書くことができます。
初めから myFunction という関数があります。
今回はこの中に書いていきます。
function myFunction() {
}
通知用関数を実装
ライブラリを使用する例もたくさんありましたが、Incoming Webhook
で通知するので、UrlFetchApp というクラスからHTTPリクエストをします。
あまり複雑なコードではないので、以下を例にWebhook URLを変更してhttps://hooks.slack.com/services/XXX/YYY/ZZZ
書いてみてください。
コード.gs
function myFunction() {
var jsonData = {
text: "こんにちは!!"
};
var payload = JSON.stringify(jsonData);
var options = {
method: "post",
contentType: "application/json",
payload: payload
};
UrlFetchApp.fetch('https://hooks.slack.com/services/XXX/YYY/ZZZ', options);
}
一旦動かしてみましょう
実行
を押すと、初回のみ承認ダイアログが出るので許可をします。
画像のような通知が来ていればOKです!
トリガー登録
毎日12時に こんにちは!! という挨拶をしてもらいます。
そのためには、実装した関数にトリガーを登録しなければいけません。
- 左のサイドバーから「トリガー(時計マーク)」をクリックします。
- トリガーの追加画面が表示されますので、「+ トリガーを追加」ボタンをクリックします。
- 実行する関数を選択:
myFunction
- 実行するデプロイを選択:
head
- イベントのソースを選択:
時間主導型
- イベントのタイプを選択:
時間ベースのトリガー
- 時間ベースのトリガーのタイプを選択:
日付ベースのタイマー
- 時刻:
午後12時~1時
- 「保存」ボタンをクリックします。
トリガーの一覧内容が反映されていれば終了です。
おわり
今回は簡素なものでしたが、もっと凝ったことも可能です。
現在2人チームで進めているIWANAISMというプロジェクトでは、ASANAのタスクをGAS×SlackAPI により毎朝通知をしてたりします。
バージョン管理しないものや、作業効率化を目的としたツールに最適かなと思います。
個人的なメリットとしては
- 無料でトリガー関数を作れる
- JSライクに書ける
- デプロイしなくてもトリガーを作れる
日々GASの恩恵をいただいてます。
ぜひお試しください!
お疲れ様でした。