ハードルが高いと思っていたMessaging APIで,メッセージを送ることがやっとできました。といっても,諸
兄の丸パクリ寄せ集めです。ただ,その過程で,今までよりも少し,Linux 関連の知識が増えたように思い
ます。
今回使ったのは,シェルスクリプトと呼ばれる一種のプログラムで,MS-DOS時代のバッチファイルのような
感じのものです。前から,存在は分かっていたのですが,今回の作業過程で,理解がふかまりました。これも
貴重な情報を掲載してくれている様々な諸兄のおかげです。
シェルスクリプ私なりに作成しましたが,大きく分けて,お二人の方の合体です。一人はグローバルIPを取
得する部分,お一人はメーッセージを送る部分,をかいていたので,それを自分なりにアレンジして合体し
て動かしました。
#!/bin/sh
#IPアドレスの取得
newip=`curl -s inet-ip.info`
for i in `seq 5`
do
if [ "$newip" = '' ]; then
newip=`curl -s inet-ip.info`
fi
done
if [ "$newip" = '' ]; then
exit 1
fi
#IPアドレスが変化したら,メッセージを送る。
oldip=`cat /home/mabo52/pgip`
if [ $oldip != $newip ]; then
echo "$newip" > /home/mabo52/pgip
curl -X POST \
-H 'Content-Type:application/json' \
-H 'Authorization: Bearer {#公式アカウントで取得したTOKEN}' \
-d '{
"to": "#公式アカウントで取得したID",
"messages":[
{
"type": "text",
"text": "IPアドレスが変わりました。IP='$newip'"
}
]
}' https://api.line.me/v2/bot/message/push
fi
これを実行してみると見事メッセージが送れましたので,久しぶりに,「やったー」になりました。
このスクリプトでは,pgip というグローバルIPを保存するファイルをあらかじめ同じ階層に作成
しておく必要があります。元のスクリプトでは,この保存ようのファイルがあるかないかのチェック
をいれてありますが,私のでは省いてあります。このファイルに実行権を与えて,あとは,crontab
にスケジュールを記載して,定期的に実行すればOKになります。
グローバルIPの取得に関しては,
https://blog.n-hassy.info/2022/03/line-notify-from-raspi/
を,メッセージの送信かんしては,
https://news.mynavi.jp/techplus/article/linebot-2/
をほぼ,丸パクリさせてもらいました。公式アカウントの取得では,
https://zenn.dev/kou_pg_0131/articles/line-push-text-message
参考にさせていただきました。
ただ公式アカウントの作成では,
ログイン
↓
プロバイダーを作成する
までは,うまくいったのですが,この段階では,ビジネスアカウントの設定が不完全だったので,次の段階の
チャンネルの作成
に手間取ってしまいました。作成の手順が参考にしたHPとは若干違っていたのか,何とかできました。
以前は,LINE Notify のIDとトウクンで,LINE Notifyにメッセージを送る感じ
でしrたが,今回は,
ビジネスアカウントを作成
↓
作成したアカウントと友達になる。
↓
作成の過程で取得したトウクンとIPを保存Dでビジネスアカウントにメッセージを送る
一手間かかったように思います。ただ,ビジネスアカウントの無料のコースでは,一月にメッs-ジ
を200通しか送れません。まあ,グローバルIPの通知に使うのには,十分でしょうね。
まだ,スケジュールは組んでないのですが,この後,スケジュールを組んで,動作確認して,運用ですね。