まえちゃんろぐ

日々の生活の中での気付き、学んだこと、体験したことをアウトプットするブログ(雑記多めです)| プログラミング 本 ワークアウト 茶道

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

time 2018/03/25

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

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

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

sponsored link

開発環境、使用ツール

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

  • 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

販売中チケット

プログラミング、Webサービスの作り方教えます

自分のスキルを販売しております。お困りの方はご遠慮なくご連絡頂ければと思います。

down

コメントする




お知らせ

スポンサードリンク

書いてる人

maechan

maechan

ベンチャー企業、フリーランス、スタートアップを経験。開発業務、人事業務に従事していました。現在は農業系スタートアップ企業でエンジニアとして働いています。リモートワークをしているノマドサラリーマンです。詳しいプロフィールはこちら。 [詳細]

販売中チケット

プログラミング、Webサービスの作り方教えます 一人で悩まず!お気軽にご相談ください!

その他のチケットはこちら

Instagram