【Python】LINE Notifyを使ってPythonから通知を送ってみる
LINE Notifyというサービスをご存知でしょうか。IFTTTやmythingsといったウェブサービスと連携して様々な通知を受け取ることができるLINEのサービスです。前回のブログで”LINE Notify”という固有名詞は出しませんでしたがこれもLINE Notifyを使って通知を送っています。
LINE notifyでは開発者向けにAPIを提供していてウェブサービスを連携しなくても通知を送ることができます。今回はPythonを使って通知を送るところまで紹介します。次回のブログではこれを応用し、スクレイピング結果をLINEで通知するプログラムを書きたいと思います。
使用した環境、モジュール
- MacBook Air Early 2015 Sierra 10.12.6
- Python 3.6.2
- iTerm2(コマンドプロント)
- requests(モジュール pip install requests でインストール)
- アクセストークン
アクセストークンを取得する
1, 以下のリンクでアクセストークンを取得します。
2, トークンを発行するを選択
3, 通知を行う方法を選択します。
"1:1でLINE Notifyから通知を受け取る"を選択するとLINE Notifyから直接通知が来ます。それ以外のグループを選択するとグループを通して通知が来ます。(グループを選択した場合はLINE Notifyをそのグループに招待する必要があります)トークン名を記入して(なんでもいい)発行するを選びましょう。
ちなみにトークン名は通知本文上部の”これ” です。
4, 発行されました。
このページから...二度と発行されませんと書いてありますが表示されたコードはという意味でいくらでも再発行は可能です。スクショするなりメモするなりしておきましょう。
コード
import requests def line(Me): line_notify_token = 'アクセストークン' #先程発行したコードを貼ります line_notify_api = 'https://notify-api.line.me/api/notify' message = '\n' + Me #変数messageに文字列をいれて送信します トークン名の隣に文字が来てしまうので最初に改行しました payload = {'message': message} headers = {'Authorization': 'Bearer ' + line_notify_token} line_notify = requests.post(line_notify_api, data=payload, headers=headers) line('Hello World!!') #関数lineの引数に任意の文字列を入れます
実行するとアクセストークン作成時の画像のようにメッセージが送信されます。今回は通知を送るところまでです。次回は電車の遅延情報をスクレイピングしてLINEに通知を送る実践活用方法をご紹介します。
おまけ
さっきのコードにおまけ機能として複数のアクセストークンを扱うコードを作ってみました。第二引数に変数numを代入して指定したアクセストークンから通知を送るものです。私は天気予報や電車の運行情報などでグループを作りグループごとにアクセストークンを発行しました。
import requests def line(Me,num): if num == 0: line_notify_token = 'アセストークン1' if num == 1: line_notify_token = 'アセストークン2' if num == 2: line_notify_token = 'アセストークン3' line_notify_api = 'https://notify-api.line.me/api/notify' message = '\n' + Me payload = {'message': message} headers = {'Authorization': 'Bearer ' + line_notify_token} line_notify = requests.post(line_notify_api, data=payload, headers=headers)