Help us understand the problem. What is going on with this article?

[LINE Notify]毎朝天気通知をLINEで送ってもらう

筆者の環境

  • Ubuntu18.04(KAGOYA VPS KVM)

LINE Notifyって何

  • 自分のラインアカウントに対してメッセージで通知出来るサービス
  • IFTTTやGitHubと連携して通知を送信する事も可能

詳細はこちら

特徴

  • 既存のLINE Notifyアカウントからメッセージを送信してお知らせを通知する

image.png

  • グループに対してメッセージを送信する事も可能

  • LINE Messaging APIの無料枠とは異なり、自発的にメッセージを送信する事が可能

試しに通知を送信してみる

1. LINE Notifyのページでトークンを発行する

こちらのページにアクセスし、ログインします。

右上のメニューから、「登録サービス管理」を開きます。

image.png

ページ下部の「トークンを発行する」から、通知名の入力と通知を送りたい対象を選択して発行します、今回は自分自身を選択しています。

image.png

image.png

トークンはコピーしてメモ帳などに張り付けておきます、わからなくなってしまった場合は再発行ができないため、「トークンを発行する」から発行しなおします。

image.png

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でない場合は、トークンが間違っているため、再確認してください。

ラインに通知が来た事を確認します。

image.png

このmessage変数を変える事で、お知らせする内容を変える事ができます。

毎朝天気通知を送る

1. 天気情報を取得する

既に準備されている天気予報ページから、ウェブスクレイピングをして天気情報を取得したいと思います。

東京の天気情報が欲しいので、スクレイピングするページを決めます。

ウェブスクレイピングはページに負荷がかかるため~~ばれないように~~迷惑をかけない程度にやりましょう。

私はここにしました。

image.png

この部分に天気の概要が載っているため、ここの情報を取得したいと思います。

image.png

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"}

image.png

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

これで毎朝天気の通知が届く様になります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした