37
59

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

エラーや実行完了をLINEで通知する【Python】

Last updated at Posted at 2020-11-21

#はじめに
機械学習などをやっていると1つのプログラムの実行に数日かかるなんてことは珍しくありません.
プログラムの実行状況が気になり,数時間おきに端末を開く.
そんな日々を送っていませんか?
そんな人のために,今回はPythonプログラムのエラーや実行完了をLINEで通知する方法を紹介します.
LINEアカウントを持っている人なら10分程度でできるので是非!

#LINE Notifyの準備
通知を送るためにLINEが提供するLINE Notifyというサービスを使います.

まずは,ここからトークンを発行します.
https://notify-bot.line.me/my/

右上のログインボタンからLINEアカウントにログイン後,以下のような手順でトークンを発行&コピーします.

手順1.png

手順2.png

トークン名は好きに設定してください.今回は「実行結果通知」としています.
手順3.png

ここで必ずコピーしてください.
手順4.png

これでLINE Notifyの準備は完了です.

#LINE通知用のPythonプログラム
以下のプログラムをコピペし,トークンの部分を変更するだけでOKです.
pip install requestsが必要かも)

line_notify.py
import requests

# LINEに通知する関数
def line_notify(message):
    line_notify_token = 'ここにトークンをペーストしてください'
    line_notify_api = 'https://notify-api.line.me/api/notify'
    payload = {'message': message}
    headers = {'Authorization': 'Bearer ' + line_notify_token} 
    requests.post(line_notify_api, data=payload, headers=headers)

if __name__ == '__main__':
    message = "Hello world!"
    line_notify(message)

python line_notify.pyを実行すると,LINEに"Hello world!"とメッセージが届くはずです.

#エラーや実行完了を通知
あとは,例外処理などと組み合わせて通知するだけです.
試しに以下のプログラムを実行してみます.

hoge.py
import requests

# LINEに通知する関数
def line_notify(message):
    line_notify_token = 'ここにトークンをペーストしてください'
    line_notify_api = 'https://notify-api.line.me/api/notify'
    payload = {'message': message}
    headers = {'Authorization': 'Bearer ' + line_notify_token} 
    requests.post(line_notify_api, data=payload, headers=headers)

# a/bを計算する関数
def foo(a, b):
    return a / b

if __name__ == '__main__':
    try:
        ans = foo(1, 0)
    except Exception as e:
        line_notify(e)
    else:
        line_notify("finished")

実行結果1.jpeg
foo(1, 0) を foo(1, 1) と変更して実行してみます.
実行結果2.jpeg
正しく通知できていますね.

#参考

37
59
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
59

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?