コード一覧

【Python】Herokuを使ってLINEにスクレイピング結果を通知する方法

Herokuの設定

Herokuの設定とスクレイピングの定期実行の記事に関しては以下を参照。

今回の記事は、LINEに通知する方法をメインに記事を書いていきます。

LINEへの通知について

・最初はLINE BOTを使って何かしようとしていました。
その場合、DjangoやFlaskなどを使ってやる方法がありましたが、もっと手軽にできればということで、LINE NotifyというLINEの通知機能を使いました。

出来ることは
・LINE Notifyから自分自身に通知する
・LINEグループへLINE Notifyが通知する
という2種類です。

どちらの設定もめっちゃ簡単ですし、ローカルでそのままテストも出来るので、面白いと思います。

まず基本コードはこちらになります。

import requests

# LINE Notifyのアクセス(自分が発行したトークンへ変更)
line_notify_token = '**********************'
# LINE NotifyのAPIアドレス(このままでOK)
line_notify_api = 'https://notify-api.line.me/api/notify'

# 送りたいメッセージ内容
message =  "テストメッセージ"
payload = {'message': message}
headers = {'Authorization': 'Bearer ' + line_notify_token} 
line_notify = requests.post(line_notify_api, data=payload, headers=headers)

上記を実行すると、LINE Notifyから「テストメッセージ」というメッセージが届きます。

LINE Notifyの設定方法

1.アカウントを発行する
https://notify-bot.line.me/ja/

2.マイページにいく
https://notify-bot.line.me/my/

3.トークンを発行するをクリックする

4.トークン名と通知先のグループを決める

※上記で決めたトークン名は通知の時に表示されます。以下のような感じです。
mytokenと登録したので、mytokenと表示されています。

5.発行したトークンをコピーする

6.発行しましたよ!と通知がくる。

7.コードのtokenのところへ貼り付ける。

line_notify_token = '**********************'

8.実行すると、LINEへ通知されるようになります。
以下の部分が通知されます。
message = "テストメッセージ"

※1:1ならこれでOKですが、グループの場合、LINE Notifyをグループに招待しないと、いけません。招待していないと以下のようなメッセージが通知されます。

メッセージを通知する時の工夫

1.メッセージの内容をそのままリストを指定すると、横並びになる。

# 送りたいメッセージ内容
line_message =["A","B","C","D"]

# リストをそのまま通知
message = line_message
payload = {'message': message}
headers = {'Authorization': 'Bearer ' + line_notify_token} 
line_notify = requests.post(line_notify_api, data=payload, headers=headers)

2.リストの内容を改行して通知する方法

# 送りたいメッセージ内容
line_message =["A","B","C","D"]

# 改行して通知
string = "\n".join(line_message)
message =  '\n' + string
payload = {'message': message}
headers = {'Authorization': 'Bearer ' + line_notify_token} 
line_notify = requests.post(line_notify_api, data=payload, headers=headers)

まとめ

Herokuの使い方はこの記事では取り扱いませんでしたが、上部にあるリンクに詳細を記載しています。
今回は、最終結果としてLINEで通知する方法をまとめました。
上記コードのまま、Herokuでも使えます。