cojimaru BLOG

エンジニア支援のために技術情報を発信するブログ

pythonでLINE notifyを利用してみた

f:id:cojimaru-chan:20210222224944p:plain

はじめに

どうも、こじまるです。
『Web Serviceの情報をLINEに通知したい』などと悩んでいませんか?そんな方に向けて、pythonを使ってLINEに通知する』ための方法を記事にまとめました。

この記事をみてわかること
  • LINE Notifyの始め方
  • pythonでLINEに通知を送る方法

本記事で紹介する方法を実践すれば、下記のようにpythonを使ってLINEに画像やテキストを通知することができます。
f:id:cojimaru-chan:20210222195638j:plain

LINE Notifyによる通知

LINE Notifyとは

LINE Notifyとは、メッセージアプリ『LINE』が提供するサービスです。Web Serviceと連携することで、LINEの公式アカウント『LINE Notify』アカウントに通知を送ることができます。



最近では、IFTTTといったWebサービス同士を連携させるサービスを活用し、例えば『メールが届いた時』『LINE notifyで通知をする』といった形で使用されています。IFTTTは下記記事で紹介していますので、興味がありましたらみてください。

cojimaru-chan.hatenablog.com

LINE Notifyの始め方

1.LINE Notifyにアクセスし、LINEアカウントでログイン
f:id:cojimaru-chan:20210222180829j:plain

2.マイページに遷移
f:id:cojimaru-chan:20210222180849j:plain

3.アクセストークンの発行
f:id:cojimaru-chan:20210222181519j:plain

4.トークン名とトークルームを設定
f:id:cojimaru-chan:20210222180911j:plain

5.アクセストークンのコピー
f:id:cojimaru-chan:20210222180928j:plain

以上で、LINE notifyの設定は終了です。発行したアクセストークンはpythonで通知を飛ばすために必要です。


LINE notifyはOAuth2.0という仕組みを使って、LINEへの通知を実現しています。下記記事で分かりやすく解説されていました。
qiita.com

pythonで通知を飛ばす方法

環境設定

pythonで通知を飛ばすために、requestsが必要です。requestsがインストールされていない場合にはpipを使ってインストールしてください。

pip install requests
LINE notifyでメッセージを送信する方法

LINE notifyでメッセージを送信するために、LINE Notifyの仕様書に準ずる形でリクエストを行う必要があります。メッセージの送信のために、ヘッダにアクセストークンが必要になります。

def send_message(url, message):
    api_token = '' // something value
    headers = {'Authorization': f'Bearer {api_token}'}
    data = {'message': f'message: {message}'}
    response = requests.post(url,headers=headers,data=data)
    print(response)

if __name__ == '__main__':
    notification_url = 'https://notify-api.line.me/api/notify'
    send_message(notification_url,'Test')

実行結果
f:id:cojimaru-chan:20210222193908j:plain

LINE notifyで画像を送信する方法
def send_image(url, message, file_path):
    api_token = '' // something value
    headers = {'Authorization': f'Bearer {api_token}'}
    data = {'message': f'message: {message}'}
    files = {'imageFile':open(file_path,'rb')}
    response = requests.post(url,headers=headers,params=data,files=files)
    print(response)

if __name__ == '__main__':
    notification_url = 'https://notify-api.line.me/api/notify'
    send_image(notification_url,'Test','cojimaru_image.png')

実行結果
f:id:cojimaru-chan:20210222195638j:plain

まとめ

最後に、ご紹介した内容をおさらいしていきます。
LINE notifyを使用するためには、下記の手順が必要になります。

①LINE notifyでアクセストークンの発行
pythonスクリプトの作成


ご紹介した内容を実践すれば、初心者の方でもpythonを使ってLINEに画像やテキストを通知することできます。株価情報の自動配信の記事なども出していますので、ぜひ見てください。
cojimaru-chan.hatenablog.com

cojimaru-chan.hatenablog.com