こんにちは、さっくんちょです。
今回は「LINE Notify」に触れる機会があったので、その使い方を含め紹介していきたいと思います。
目次
環境
- Ubuntu18.04(KAGOYA VPS KVM)
LINE Notifyって何?
- ラインに通知を出来るサービス
- IFTTTやGitHubと連携して通知を送信する事も簡単にできる
詳細はこちら
LINE Notifyの特徴
- 既存のLINE Notifyアカウントからメッセージを送信してお知らせを通知する
- グループに対してメッセージを送信する事も可能
- LINE Messaging APIの無料枠とは異なり、自発的にメッセージを送信する事が可能
【検証】通知を送信してみる
1. LINE Notifyのページでトークンを発行する
こちらのページにアクセスし、ログインします。
右上のメニューから、「登録サービス管理」を開きます。
ページ下部の「トークンを発行する」から、通知名の入力と通知を送りたい対象を選択して発行します、今回は自分自身を選択しています。
トークンはコピーしてメモ帳などに張り付けておきます、わからなくなってしまった場合は再発行ができないため、「トークンを発行する」から発行しなおします。
Ubuntuで以下コマンドを実行し、トークンを使用しての通知ができる事を確認します。
1 2 3 4 |
$ 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. 天気情報を取得する
既に準備されている天気予報ページから、ウェブスクレイピングをして天気情報を取得したいと思います。
東京の天気情報が欲しいので、スクレイピングするページを決めます。
1 |
ウェブスクレイピングはページに負荷がかかるため~~ばれないように~~迷惑をかけない程度にやりましょう。 |
今回はここから情報を取得します。
この部分に天気の概要が載っているため、ここの情報を取得したいと思います。
curlとsedを駆使した所、以下のコマンド形式で取得できる事がわかりました。
1 2 |
$ 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に書き込みます。
1 2 3 4 |
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に実行権限を付与しておきます。
1 |
chmod +x /usr/local/bin/tenki.sh |
問題無く動作する事を確認しておきます。
1 2 |
$ /usr/local/bin/tenki.sh {"status":200,"message":"ok"} |
3.定期実行する
cronを利用します、設定は/etc/crontabを編集して行います。
cronが入っているかわからない、入っていない場合は以下コマンドを実行してインストールします。
1 |
$ sudo apt install cron -y |
以下一行を/etc/crontabに追記します。
1 |
00 08 * * * root /usr/local/bin/tenki.sh |
毎朝8時、rootユーザーで/usr/local/bin/tenki.shを実行する
といった内容となっています。
これで毎朝天気の通知が届く様になります。
No comments yet.