Messaging API でグローバルIPの通知 ラズベリーパイ

ハードルが高いと思っていた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の通知に使うのには,十分でしょうね。

まだ,スケジュールは組んでないのですが,この後,スケジュールを組んで,動作確認して,運用ですね。