PythonでLINE Notifyする

スマホにPush通知する手段として何が良いか考えたときにLINE Notifyを使うのが一番手軽な気がしている。

LINE NotifyはLINE NotifyのページからTokenを発行し、そのTokenを以下のpythonスクリプトに渡すだけで簡単にスマホに通知を送ることができる。

Tokenを発行する際にトークルームを指定するとそのトークルームに通知を飛ばすことができるため通知を送りたい人をそのトークルームに招待しておくとそのトークルームの参加者に一斉通知を行うことができる。

例えば、Raspberry Piでマグネットセンサを使い家のドアが開いたことをセンシングして通知するようなシステムを作った場合、家族が参加しているトークルームを作っておけば家族全員にその通知を届けることができる。

事前準備(mac, raspbianの場合)

1. LINE NotifyのページにログインしてTokenを発行する。

2. 環境変数 LINENOTIFYTOKEN に取得したTokenを指定する。

bashの場合は 

export LINENOTIFYTOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

スクリプト

import requests
import os

def sendLineNotify(message):
   token = os.environ.get("LINENOTIFYTOKEN")
   url = "https://notify-api.line.me/api/notify"
   headers = {"Authorization" : "Bearer " + token}
   payload = {"message" :  message}
   r = requests.post(url, headers = headers, params = payload)

if __name__ == '__main__':
   sendLineNotify("test test")

実行例

スクリーンショット 2021-03-16 午後8.27.19

画像を送りたい場合のスクリプト

以下のように画像(test.jpg)を用意して指定することで画像もプッシュすることが出来る。

import requests
import os

def sendLineNotify(message):
   token = os.environ.get("LINENOTIFYTOKEN")
   url = "https://notify-api.line.me/api/notify"
   headers = {"Authorization" : "Bearer " + token}
   payload = {"message" :  message}
   files = {"imageFile" : open("test.jpg", "rb")}
   r = requests.post(url, headers = headers, params = payload, files = files)

if __name__ == '__main__':
   sendLineNotify("画像と一緒にプッシュ")
   

今回のエッセンス

LINE Notifyを使うといとも簡単にスマホにプッシュ通知を送ることが出来る。

いいなと思ったら応援しよう!