今回はPythonのプログラムからLINEに通知を送る方法について解説します。
LINEと連携することで、システムを監視して状態を送信するなど、IoTなどのアプリケーションにも活用できますので、ぜひ試してみてください。
LINE Notifyとは
LINE NotifyはGitHub,IFTTT,MackerelなどのWebサービスからの通知を、LINEで受信することが出来る便利なサービスです。
今回はこのLINE Notifyを経由して、PythonのプログラムからLINEに通知を送ります。
LINE Notifyの公式サイトは以下となります。
アクセストークンの取得
LINE Notifyのサイトにアクセスし、画面右上の「ログイン」をクリックします。通知したいLINEアカウントのメールアドレスとパスワードを入力してログインしてください。

先ほどの「ログイン」の部分がアカウント名に変わりますので、メニューから「マイページ」をクリックします。

以下の画面が表示されたら、「トークンを発行する」をクリックします。

赤枠の部分にトークン名を入力します。

トークン名を入力すると「発行する」ボタンがクリックできるようになりますので、クリックします。

発行されたトークンが表示されますので、コピーしてなくさないように保存しておいてください。コピーしたら「閉じる」をクリックします。

以下のように、連携中サービスに先ほど設定したアカウントが表示されます。これでアカウントにプログラムからデータを送信することができるようになりました。

ライブラリのインストール
LINEに通知を送信するプログラムでは、HTTP通信ライブラリであるrequestsモジュールを使用します。
requestsモジュールをインストールするため、コマンドプロンプトで以下のコマンドを実行してください。
pip install requests
requestsモジュールの詳細については以下の記事で解説していますので、あわせてご覧ください。

コード解説
requestsモジュールでHTTP通信を行う際の接続先URLと、先ほどLINE Notifyのサイトで取得したトークンを設定します。
#APIのURLとトークン
url = "https://notify-api.line.me/api/notify" #URL
access_token = "(LINE Notifyで取得したトークン)" #取得したトークン
requests.postメソッドで通知したいデータを送信します。
result = requests.post(url, headers=headers, data=send_data)
作成したソースコード
今回作成したソースコードは以下の通りです。
import requests
#APIのURLとトークン
url = "https://notify-api.line.me/api/notify" #URL
access_token = "(LINE Notifyで取得したトークン)" #取得したトークン
#送信するメッセージを設定
message = "Line通知テスト"
def main():
headers = {"Authorization": "Bearer " + access_token}
send_data = {"message": message}
#メッセージを送信
result = requests.post(url, headers=headers, data=send_data)
print("Send Massage")
print(result)
if __name__ == "__main__":
main()
サービスとして起動時に実行する場合
サービスとして起動時に自動実行する場合は、イーサネットの通信が確立する前にプログラムが実行されてしまうとエラーが発生します。
以下のように遅延を入れることをおすすめします。
import time
time.sleep(30) # 30秒間待機
実行結果
今回は以下の文字列をテストとして送信します。
Line通知テスト
先ほどのプログラムを実行した結果です。
LINEのトークの画面を確認すると、LINE Notifyに以下のように通知が届いていました。

正しくデータが送信されたことが確認できました。
まとめ
今回はPythonのアプリケーションからLINEに通知を送る方法を解説してみました。今後マイコンボードRaspberry Piのアプリケーションに今回のプログラムを組み込み、LINEと連携したシステムを作っていく予定です。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。


参考


コメント