Raspberry PiからLINEへのプッシュ通知をIFTTTで実現

目的:自宅のRaspberry Piからスマホへプッシュ通知を行う。

プッシュ通知サービスはPushbulletをはじめ多々ありますが、スマホ側で専用アプリをインストールする必要があり、グループ内で通知を受けたい場合など煩わしい思いをいていました。どうせならプッシュの受け取りをLINEへ統合したいと考えたので実践してみました。

WebサービスやSNSを連携させることができるIFTTT(イフト)が、LINEと連携できるようになったので、これを仲介させてもらいます。

Raspberry Pi 4 ModelB 4GB
Raspberry Pi
Raspberry Pi 4 ModelB 4GB
Amazon_logoAmazon
Rakuten_logoRakuten

まずはIFTTTのユーザ登録から

次の下準備が必要です。

  1. IFTTTのユーザ登録
  2. LINEのメールアドレス・パスワード登録

IFTTT〜LINEの連携

まず、IFTTTのLINE連携ページで自分のLINEを登録します。
https://ifttt.com/line

LINEのメールアドレスとパスワードを入力して「同意して連携」するを選択。簡単ですね。

連携されると、LINEへ通知が来ます。

Raspberry Pi→IFTTTへの通知

こちらの連携にはIFTTTのWebhooksを利用します。
https://ifttt.com/maker_webhooks

Webhooksと接続したのち、Settingを開きます。

通知先のURLを確認します。Raspberry Piからこのアドレスへメッセージを送信すれば、IFTTTがLINEへ投げてくれるという仕組みです。ここで大切なのは/use/のあとの英数文字列(Your Key)です。後から使うのでメモしてくださいね。

さて、WebhooksとLINEを結びつけることも必要です。My Appletsのページで新しいAppletを作成します。
https://ifttt.com/my_applets

if this then that と出てきます。「もし~なら、こうする」ってやつですね。まずはトリガーとなる「this」を選択します。

サービス一覧が表示されます。この中からWebhooksを選べばよいのですが、数が多いので、検索したほうが楽です。

トリガーの選択画面になりますが、1つしかありませんので、コレを選択します。URLへのWebリクエストがトリガーとなります。

リクエスト先のURLへ付加するイベントネームを記入します。Raspberry Piからのリクエストだよという感じで、名前は「raspberry_pi」にしておきました。

これで「もし~なら、こうする」のifの部分が完成。次はthatの部分を選びましょう。

また、サービス一覧が表示されます。LINEへメッセージを送りたいので、アクションサービスは「LINE」を選びます。これも検索で見つけましょう。

アクションは、これも1つしかないですね。

LINEへどんなメッセージを送るか編集できます。Recipientをデフォルトから変更すれば、グループLINEへメッセージを送ることができます。家族グループにすれば用途によっては便利ですね。

これで完成です。IFTTTではこのWebサービスを連携させたものをレシピと呼びます。今回は「もしWebhooksのURLにリクエストが来たら、LINEへメッセージを送信する」を作成しました。

Raspberry Pi からIFTTTへリクエストを送信する

Webhooksの指定URLへリクエストを送信すれば、自分のLINEへメッセージが届くはずです。まずはRasbperry Piのコンソールを立ち上げましょう(それかSSHでログインします)。

以下のシェルスクリプト(post.sh)を作成します。

#!/bin/bash

URL="https://maker.ifttt.com/trigger"
EVENTNAME="raspberry_pi" 
YOUR_KEY="ここにYour keyを入力" 

WEBHOOKSURL="${URL}/${EVENTNAME}/with/key/${YOUR_KEY}"

curl -X POST -H "Content-Type: application/json" -d \
    '{"value1":"'$1'","value2":"'$2'","value3":"'$3'"}' \
    ${WEBHOOKSURL} 

echo
exit 0

内容は、シェルスクリプト実行時の引数で受けたメッセージ(最大3つまで)をWebhooksのURLへcurlでポストします。
※スクリプト中の「EVENTNAME」は先ほどレシピ作成時に指定したもの(raspberry_pi)、「YOUR_KEY」は自分のものを入力します。

このスクリプトへ実行権限をつけます。

$ chmod 755 post.sh

Raspberry Pi(Raspbian)にはデフォルトでcurlが入っていないためインストールします。

$ sudo apt-get install curl

そして、いざ送信

post.shを実行するだけ。引数でLINEへ送信するメッセージを渡します。最大3つまでです。

$ ./post.sh aaa bbb ccc

うまくいけば、コンソール上へ「Congratulations!」と表示される。もちろんLINEにも

おわり

Raspberry Pi 4 ModelB 4GB
Raspberry Pi
Raspberry Pi 4 ModelB 4GB
Amazon_logoAmazon
Rakuten_logoRakuten

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です