LINE Notifyを使ってPythonからLINEにメッセージを送る

夏です、暑いです。
気がついたら来週末はメイカーフェアではありませんか。
チケットを買いに行かないと・・・  


自分たちで作った色々なbotとか、解析プログラム等のタスクが終了したときのステータス報告の投稿先として pythonからslackの任意のチャンネルへと投げています。

tmegane.hatenablog.com

別にslackでも特に問題はないのですが、LINEでも同じようなことができると知ったので試してみました。

必要なもの

requestsモジュール
Line notify notify-bot.line.me

トークンキーを発行する

Line notifyのマイページからトークンキーを発行します。
f:id:Tmegane:20190728220145p:plain:w500

Generate access tokenから、トークンを作りたいLineグループを選択し
botの名前を入力して、Generate tokenをクリック。 f:id:Tmegane:20190728220354p:plain:w400
すると、トークンキーが発行されるのでメモしておきます。一度発行したトークンキーを再度表示させることはできないようなので
メモをなくしたら再発行するしか方法がないようです。

グループにbotを追加させる

トークンキーを発行したら、botの投稿先のLineグループへと、bot本体(Line notify)を招待します。
招待の仕方は通常のLINEグループに人を招待する方法と全く同じです。 f:id:Tmegane:20190728220813p:plain:w400

招待したら、LINE側での設定は完了です。

プログラムを書く

slackへbotから投稿させる場合は、slackweb等といったモジュールをいれる必要がありますが
lineの場合は汎用的なrequestsモジュールだけでOKです。
入ってなかったらpip install requestsとかでいれておきましょう。

Pythonで書いたプログラムはこんな感じ

import requests

line_notify_token = 'token' # 発行したトークンキーを入力
line_notify_api = 'https://notify-api.line.me/api/notify'
message = 'Test' #送るメッセージ


payload = {'message': message}
headers = {'Authorization': 'Bearer ' + line_notify_token} 
line_notify = requests.post(line_notify_api, data=payload, headers=headers)

コードの長さはslackへ投稿するのとさほど変わらないですね。
実行するとLINEへ通知がとんできます。

f:id:Tmegane:20190728221223p:plain:w400

使い勝手も悪くなさそうなので、プロダクトに応じてslackとLINEを使い分けてみることにします