LoginSignup
0
0

More than 3 years have passed since last update.

Incoming Webhookからランダムに掃除の通知をしよう!

Posted at

何をしたいのか?

Bot(Incoming Webhook)に掃除する日を決めてもらい、指定する時間に通知をしてほしい。

きっかけ

  • 複数人で利用している事務所がある
  • 定期的に掃除する日がない
  • 掃除のために定期的に集まるのは難しい

→ Botから通知で居合わせた人たちで掃除しよう
と考えた

使うアプリケーション

  • Slack
    業務でよく使うため

  • Incoming Webhook
    常時稼働が不要とサーバーを立てる必要がない

  • Google Apps Script(GASと略す)
    定期的にコードを実行する設定がしやすい

具体的な進め方

  1. SlackのチャンネルとIncoming Webhookを連携させる
  2. Incoming Webhookから1/30の確率でSlackへ通知するように、GASにコードを書く
  3. GASのnotifyトリガーで決まった時間帯にコードを実行するように設定する

1. SlackのチャンネルとIncoming Webhookを連携させる

参考 Slack Botの種類と大まかな作り方

https://slack.com/apps/A0F7XDUAZ--incoming-webhook-?next_id=0 にアクセスして、Slackに追加を押す

チャンネルへの投稿で導入したいチャンネルを選択する

※ Webhook URL はあとで使うため、コピーする
スクリーンショット 2020-05-17 23.29.27.png

2. Incoming Webhookから1/30の確率でSlackへ通知するように、GASにコードを書く

https://drive.google.com/drive/u/0/my-drive にアクセスし、左上から新規→その他→Google Apps Scriptを押す

Screenshot from Gyazo

  コードは以下のように書いた
  Incoming Webhookからのメッセージは自由に変えられる

参考 Block Kit Builder



function main(){
  var result;

// 1/30の確率で通知させたい
//Math.random()は0~1未満までをランダムに生成
//Math.floor()は小数点以下を切り捨て整数を返す
//0~29のうち29以上であればIncomigWebhookから通知が来る
  result = Math.floor(Math.random()*30); 
  if(result >= 29){
    Do_notify();
  }
}

function Do_notify() {
  var options =
  { // 以下のテキストはJSONの様式にそって書くと変更できる
    "method" : "post",
    "contentType" : "application/json",
    "payload" : JSON.stringify(
      {
        "attachments":[
      {
         "fallback":"今日は掃除の日です",
         "pretext":"<!channel> 今日は掃除の日です",
         "color":"#D00000",
         "fields":[
            {
               "title":"掃除内容は以下の通りです ",
               "value":"*_掃除機かける_* \n *_デスクのアルコール除菌_* \n *_ホワイトボード消し_*",
               "short":false,
              "mrkdwn_in": ["value"]
            }
         ]
        }
       ]
      }
    )
  };

  UrlFetchApp.fetch("https://hooks.slack.com/services/XXXXXXX/XXXXXX/XXXXXXXXXXXXXX", options);
}

3. GASのnotifyトリガーで決まった時間帯にコードを実行するように設定する

以下のボタンを押してトリガーを設定する

スクリーンショット 2020-05-17 23.48.25.png

トリガーを追加を押すと分ベースや時間ベースで定期的に実行できるように設定できる

1日毎の17時から18時の間で実行するようにセットし、保存を押せば完成

スクリーンショット 2020-05-17 23.56.27.png

参考にした記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0