PR

学校に着いたら通知進化版

日記
スポンサーリンク

2024-2-19追記

iftttより2024-2-15以降webhookのアプリがpro版以上になったのでこの記事の内容は使えなくなりました。
対策版はそのうちアップするかも。

前回は簡易的なLINEの通知仕様だったがよりメッセージを細かくとか自動通知する人数増やしたい場合には対応できなかったのでその部分の進化。ただし難易度は上がるのでパソコンに詳しくない方はごめんなさい。

必要なもの

  • スマートフォン iPhone Androidどちらでも可
  • IFTTT 
  • LINE
  • Webhookを送受信するためのWebServer今回はPHPで動作。

最後の部分が多分準備できないと思う。

動作フロー

  1. 指定エリアに入るか出るかでIFTTTのトリガー発動
  2. アクションはLINEではなくWebhookで独自APIにデータを送信する。誰が、どこに、出入りしたかの3つ。
  3. サーバで3つのデータを受信したら出入り部分を日本語に変えてWebhookを送信。
  4. IFTTTでWebhookを受け取り内容そのままLINEに送信。

簡単なif文で着いた、出たと切り替えている。なのでサーバが準備できない場合はほかのサービスを利用するのもあり。IFTTTだけで完結する場合はPRO+にしないといけない月額650円。PRO+ならトリガーに対してif文が作れる。
もしくはほかのWebhookを受信できるサービスを利用するのもあり。
例えばIFTTTに似たサービスのmakeとか。

Just a moment...

ここにWebhookを送ってIFTTTにデータを送信してLINEで通知するなんてことも可能。ただ無料版だと使用回数が制限されている。

初めにサーバのAPI作成

PHPで作成全体のコードはGit hubに置いておく。受け取ったJSONデータから条件分岐してLINE用のメッセージに加工する。
実際に利用している内容は、私自身の通知は「ちち 会社 着いた」と「ちち 会社 出た」と表示される。

娘の場合は「むすめ 学校 着いた」と「むすめ 学校 出た」
のほかに帰りに限り13:00->13:20,13:25->13:45,14:10->14:30のような学校の最寄り駅の出発時刻と自宅最寄り駅の到着時刻を同時に通知する。これを見て駅までの迎えの時間の目安にしたりする。
ちなみにYahoo時刻表を利用している。規約上問題あるのか調べたが特に記載もなかったので利用している。

GitHub - kiwamu25/IFTTT-Webhook-Relay: Receiving Webhooks from IFTTT and sending Webhooks to IFTTT.
Receiving Webhooks from IFTTT and sending Webhooks to IFTTT. - kiwamu25/IFTTT-Webhook-Relay

IFTTTのアプリ

1つ目は指定位置でWebhookを送信するアプリ。

2つ目は受け取ったWebhookをLINEで送信するアプリ。

1つ目のアプリの設定

トリガーはLocationのままで変更なし。アクションがLINEからWebhookのMake a web requestに。
アクションの設定
URLはさっき作成したPHPページ。
MethodはPOST
Content Type はapplication/json
Additional Headers は空欄
Bodyに

{
“who”:”ちち”,
“where”:”会社”,
“how”:”{{EnteredOrExited}}”
}

JSON形式で記載する。これで完成。

2つ目のアプリの設定

こちらのトリガーはWebhook受信に設定。
受信用のURLはWebhookの説明ページに記載されている。このURLを先ほどのサーバ側のcurl送信にしてするのも忘れずに。あとEvent Nameの設定と。

アクションはLINE通知で前回とほぼ一緒。Messageだけ

{{Value1}}{Value2}}{{Value3}}

にする。

まとめ

以上で完成。Locationトリガーの設定を各自のスマホに入れるだけで行き帰りを自動通知できるようになる。ただ、大人の場合仕事で出歩くと随時通知が飛ぶのでケースバイケースだと思う。

IFTTTの2つ目のアプリは誰か一人のIFTTTに登録するだけでいい。LINEグループに同じ名前が入れられないのでLINE Notifyが動作しなくなってしまうので注意。

1学期中の結果からLINE送信が行われなかったのは1度くらいでほぼ満足な結果となった。そのようなときはiPhoneの探す設定で位置情報共有していればどこにいるかわかるのでそっちで確認すれば良いので特に問題ない。あくまで登下校の異常を検出するのが目的なので十分な成果。

コメント

タイトルとURLをコピーしました