皆さん、毎朝電車遅延の情報はどうやって仕入れていますか?
僕は出掛ける準備をしながらAmazon Echoに尋ねていたのですが、声を出すのも面倒になったのでスマホの目覚ましアラームを止めた時に確認できるようにしてみました。
Contents [hide]
使ったもの
- IFTTT:アプリやWebサービス等を連携させ、一連の作業を自動化するサービス。
- Google Apps Script:JavaScriptで書けるサーバーサイド・スクリプト環境。今回は電車遅延情報を取得してIFTTTの実行トリガーを引く役割。
手順
1.IFTTT側でアプレット(レシピ)の準備
↓「this」から「Webhooks」を選択
↓
↓
↓ 任意のイベント名を入力
↓「that」から「LINE」を選択(通知できるものなら何でもいいです)
↓
↓
↓ 今回は単純な文章のみ通知するのでMessageはシンプルに「Value1」のみ。
2.Google Apps Script側のコード
3.末尾の{WebhooksKey}に入れるキーを取得する
IFTTT → My Applets → Service → Webhooks
↓
↓ Documentation をクリック
↓
キーを上記コードの{WebhooksKey}にコピペして保存
4.Google Apps Scriptで定期実行設定
編集 → 現在のプロジェクトのトリガー を選択
↓ トリガーを追加
これでひとまず、毎日午前8時~9時の間にLINE通知が来るようになります。
でも通知時間がアバウトで惜しい。
……ということで僕は以下のサイトを参考にピッタリ9時に通知するようにしてみました。
Google Apps Script で毎日決まった時刻にスクリプトを実行するトリガー設定
営業日のみ通知させる方法も記載されていますのでお好みでどうぞ。
まとめ
IFTTTは単純な連動に対して非常に強力。
「this」と「that」が分離されているので、例えばLINE通知ではなくメール通知に変更したい時も簡単です。
ただ、IFTTT単体だと細かい通知条件の指定が難しいため、Google Apps Script等を使った一手間が必要になります。
最初はこちらのサイト(【簡単無料】鉄道の運行状況をスマートフォンにプッシュ通知する方法(改))を参考にIFTTTのみで完結させようとしましたが、時間に関係なくバンバン通知が来て鬱陶しかったので、今回のような形に落ち着きました。
そして最後に言うなよっていう感じなんですが、1ヶ月ほど実用してみた結果、肝心のJSONを取得しているサイトの遅延情報精度が微妙でした。
今は普通に『Yahoo!路線情報』の遅延通知機能を使っています……。