【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です。

実装手順

以下の手順に従ってください

  1. Google ドライブにアクセスします。
  2. 「新規」ボタンをクリックし、ドロップダウンメニューから「その他」を選択します。
  3. メニューから「Google Apps Script」を選択します。
  4. 新しいウィンドウが表示されるので、プロジェクト名を入力します。適切な名前を選んでください。
  5. プロジェクトが作成されると、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時に こんにちは!! という挨拶をしてもらいます。
そのためには、実装した関数にトリガーを登録しなければいけません。

  1. 左のサイドバーから「トリガー(時計マーク)」をクリックします。
  2. トリガーの追加画面が表示されますので、「+ トリガーを追加」ボタンをクリックします。
  3. 実行する関数を選択: myFunction
  4. 実行するデプロイを選択: head
  5. イベントのソースを選択: 時間主導型
  6. イベントのタイプを選択: 時間ベースのトリガー
  7. 時間ベースのトリガーのタイプを選択: 日付ベースのタイマー
  8. 時刻: 午後12時~1時
  9. 「保存」ボタンをクリックします。

トリガーの一覧内容が反映されていれば終了です。

おわり

今回は簡素なものでしたが、もっと凝ったことも可能です。
現在2人チームで進めているIWANAISMというプロジェクトでは、ASANAのタスクをGAS×SlackAPI により毎朝通知をしてたりします。
バージョン管理しないものや、作業効率化を目的としたツールに最適かなと思います。
個人的なメリットとしては

  • 無料でトリガー関数を作れる
  • JSライクに書ける
  • デプロイしなくてもトリガーを作れる

日々GASの恩恵をいただいてます。
ぜひお試しください!

お疲れ様でした。

筆者情報
IT業界経験6年目のフルスタックエンジニア。
フロントエンドを軸として技術を研鑽中でございます。