プログラミング

LINE Messaging API を使って毎日のゴミ出しの「ゴミの種類」を通知してくれるボットを作った【Python】

毎日のゴミ出しのゴミの種類がなかなか覚えられない。都度、市役所から貰ったゴミの収取日カレンダーを見るのはとても面倒だ。「LINE BOT」で毎日それを手軽に知ることが出来たら便利だろうなと思い作ってみました。

プッシュ通知の実装はまたこちらのプラグインにお世話になります。

開発環境、使用ツール

開発環境及び主な使用ツールは以下になります。

  • Python: ver 3.6.4
  • line-bot-sdk: ver 1.5.0
  • Vagrant: ver 1.9.1
  • CentOS: ver 6.7 (Final)
  • PaaS: Heroku
  • Heroku Addon: Heroku Scheduler

今回のコード

実装コードは、以前作成した「オウム返しボット」プロジェクトを再利用します。

追記したコードは以下。

現在の曜日を取得、プッシュする文字列を生成、そして push_message メソッドを使用してメッセージをプッシュしています。

土曜日と日曜日はゴミ出しの日ではないので、プッシュする前にメソッドから抜けるようにしています。

実際に運用する場合は、(1) garbage_listは適宜変更、(2) にはID(userId, groupId, roomId)を定義してください。

Heroku の設定

Pythonのdatetimeクラスを使用するのでHerokuのタイムゾーンの設定を行います。

Heroku Scheduler

毎日定期的にプッシュ通知が届くようにしたい、今回はHerokuのアドオンで提供されている「Heroku Scheduler」を使用しました。

Heroku Scheduler の追加

アプリケーションの「Resources」ページからアドオンを検索。

Freeプランで追加。

Heroku Schedulerが追加されました。

Heroku Scheduler の設定

外部からメソッドをコールする方法は幾つかありますが、今回は「cURL」を使用します。

一点、Heroku Schedulerには気を配るところがあります。

それはHeroku SchedulerはタイムゾーンUTCにのみ対応しているということ(2018.03.25現在)。

そのため、タイムゾーンJSTで正確にプッシュ通知を受け取りたい場合は、受け取りたい時刻から-9時間を引いた時刻を入力する必要があります。

以下は朝の7時にプッシュ通知が届くように設定したい場合です。

Heroku Schedulerに設定するコマンドは以下を参考にしてください。

朝こんな感じ

※ 時間ズレてるのは気にしないでね。デバック用のやつだから。

おわり

次は何しようかな。

参考記事

記事内の写真出典元

Chris Ried – Unsplash

ABOUT ME
maechan
ベンチャー、フリーランス、スタートアップを経験。 開発業務、人事業務に従事していました。 現在は農業系スタートアップ企業でエンジニアとして働いています。 リモートワークをしているノマドサラリーマンです。茶道とワークアウトが趣味です。