筆者の環境
- Ubuntu18.04(KAGOYA VPS KVM)
LINE Notifyって何
- 自分のラインアカウントに対してメッセージで通知出来るサービス
- IFTTTやGitHubと連携して通知を送信する事も可能
詳細はこちら
特徴
- 既存のLINE Notifyアカウントからメッセージを送信してお知らせを通知する

-
グループに対してメッセージを送信する事も可能
-
LINE Messaging APIの無料枠とは異なり、自発的にメッセージを送信する事が可能
試しに通知を送信してみる
1. LINE Notifyのページでトークンを発行する
こちらのページにアクセスし、ログインします。
右上のメニューから、「登録サービス管理」を開きます。
ページ下部の「トークンを発行する」から、通知名の入力と通知を送りたい対象を選択して発行します、今回は自分自身を選択しています。
トークンはコピーしてメモ帳などに張り付けておきます、わからなくなってしまった場合は再発行ができないため、「トークンを発行する」から発行しなおします。
Ubuntuで以下コマンドを実行し、トークンを使用しての通知ができる事を確認します。
$ notifyKey="コピーしたトークン"
$ message="この部分はsakkuntyoが指定したメッセージです"
$ curl -X POST -H "Authorization: Bearer ${notifyKey}" -F "message=${message}" https://notify-api.line.me/api/notify
{"status":200,"message":"ok"}
statusが200でない場合は、トークンが間違っているため、再確認してください。
ラインに通知が来た事を確認します。

このmessage変数を変える事で、お知らせする内容を変える事ができます。
毎朝天気通知を送る
1. 天気情報を取得する
既に準備されている天気予報ページから、ウェブスクレイピングをして天気情報を取得したいと思います。
東京の天気情報が欲しいので、スクレイピングするページを決めます。
ウェブスクレイピングはページに負荷がかかるため~~ばれないように~~迷惑をかけない程度にやりましょう。
私はここにしました。
この部分に天気の概要が載っているため、ここの情報を取得したいと思います。
curlとsedを駆使した所、以下のコマンド形式で取得できる事がわかりました。
$ curl https://tenki.jp/forecast/3/16/ | grep forecast-comment | sed -e "s/.*forecast-comment\">//g" -e "s/<\/div>.*//g"
きょうの関東地方は北部は晴れていますが、南部では雲が多くなっています。午後2時までの最高気温は東京17.2度、横浜17.5度、 千葉17.4度、さいたまは15.9度と、日中でも上着が欠かせなくなりました。このあとは、晴れ間が出ている所でも、次第に雲が多くなるでしょう。夜は南部を中心に雨が降りやすくなりそうです。あすは昼頃まで、曇りや雨の天気でしょう。
2.取得した天気情報をメッセージにする
このコマンドの結果をmessage変数にセットする様に変更し、
この一連のコマンドを/usr/local/bin/tenki.shに書き込みます。
notifyKey="コピーしたトークン"
message=`curl https://tenki.jp/forecast/3/16/ | grep forecast-comment | sed -e "s/.*forecast-comment\">//g" -e "s/<\/div>.*//g"`
curl -X POST -H "Authorization: Bearer ${notifyKey}" -F "message=${message}" https://notify-api.line.me/api/notify
{"status":200,"message":"ok"}
このままでは実行できないので、tenki.shに実行権限を付与しておきます。
$ chmod +x /usr/local/bin/tenki.sh
-
問題無く動作する事を確認しておきます。
$ /usr/local/bin/tenki.sh
{"status":200,"message":"ok"}

3.定期実行する
cronを利用します、設定は/etc/crontabを編集して行います。
cronが入っているかわからない、入っていない場合は以下コマンドを実行してインストールします。
$ sudo apt install cron -y
-
以下一行を/etc/crontabに追記します。
毎朝8時、rootユーザーで/usr/local/bin/tenki.shを実行する
といった内容となっています。
00 08 * * * root /usr/local/bin/tenki.sh
これで毎朝天気の通知が届く様になります。