傘が必要か通知する bot を作った
注意:今回は趣味全開の内容です。
ことりちゃんが毎朝 Slack に今日傘が必要か通知する bot を作りました。
その日の降水確率が 50% を超えている時は、傘を忘れないよう Mention 付きでメッセージを投稿します。
これで、傘を忘れてびしょ濡れになることは少なくなるはず。
経緯
- 3月初旬に傘を持って行かずびしょ濡れになり、後悔した
- 毎朝傘を持っていくべきか調べて出勤するのは面倒臭い
- 自分で作りたかった
という理由から、毎朝 Slack に傘が必要か通知する bot を作りました。
ソースコード
使用技術
- Heroku
- Ruby
- Rake
- Slack(Incoming WebHooks)
Heroku Scheduler を利用し、指定の時間に傘が必要か Slack に通知する Rake タスクを実行しています。
Slack への通知は Incoming WebHooks を利用しています。
降水確率の取得
傘の必要性はその日の降水確率から判断しています。
天気予報の Web API は種類があったのですが、降水確率を取得できる Web API はあまり見つけられず。
今回は 気象庁の天気予報情報を XML で配信 - drk7jp を利用しました。
指定の都道府県・地域の 6時間ごと(00-06, 06-12, 12-18, 18-24)の降水確率が取得できるため、1日の最高降水確率によってメッセージを分ける実装にしました。
text = case today.probabilities_of_rain.max when 50..100 # % DANGER_MESSAGE when 40..50 # % CAUTION_MESSAGE else NOTICE_MESSAGE end
その他
heroku は Web 上から簡単に環境変数をセットできるため、 都道府県・地域・IncomingWebHook URL・メッセージは環境変数を利用して切り替えられるようにしました。
まとめ
趣味全開ですが、heroku を試すこともでき、実用性もあるので良しとしますw