LINE Notifyは、外部のWebサービスと連携させて、そこからのメッセージをLINEのトークルームで受信できる通知機能です。
指定されたLINE NotifyのURLにメッセージを投げる(POSTする)ことで自分のLINEのトークルームにそのメッセージを送ることができるので、自分でプログラムを書いて利用することも簡単。ということで、Pythonで試してみましょう。(既にほぼ同内容の記事がありますが、自分の備忘録ということで。。。)
1. LINE Notifyの初期設定
- 上のページから自分のLINE IDでログイン
- 右上の自分の名前のところからマイページにアクセス
- 「アクセストークンの発行(開発者向け)」から「トークンを発行する」を選ぶ
![LINEnotify1.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F476884%2Ffb6e35f1-938b-8cba-6f84-5fc032751fa7.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=0f24b38366b97eb2c44eb85452cce2b2)
![LINEnotify2.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F476884%2F6c26e148-ae8a-4801-486d-3f872613a848.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1539cec2739425e3b1340374e266f243)
![LINEnotify3.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F476884%2Feaa4ca02-ef58-acf1-16dc-bf66e75f16dd.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=85908da36b762c034f7ef2596a02336e)
![LINEnotify4.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F476884%2F5d604a74-f045-0f35-7bf5-8275cdb7d726.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=44518b8b7861b77fae5f03ea2e1bee8a)
2. Pythonスクリプト
これだけです。
import requests
token = "XXXXXXXXXXXXXXXXXXXXXXXX"
url = "https://notify-api.line.me/api/notify"
headers = {"Authorization": "Bearer " + token}
payload = {"message": "テストメッセージだよ"}
requests.post(url, headers=headers, data=payload)
指定のURLに"message"を伝えてあげることで、認証情報(アクセストークン)をもとに、LINEがそのメッセージを自分のところへ届けてくれます。XXXの羅列は上でコピペしたトークンに代えてください。
このスクリプトを実行すると、以下のようにLINE Notifyからメッセージが来ます(設定したトークン名が[ ]で囲われたところに表示されます)。
簡単ですね!!!
補足
アクセストークンのような他人に漏れるとヤバい情報をコードの中に書くのはよろしくないので、OSの環境変数に書いておき、スクリプトの中でそれを読み込む、という形が良いようです。
(シェルがbashの場合)~/.bash_profileに
export LINE_ACCESS_TOKEN="XXXXXXXXXXXXX"
を書き込んでアクセストークンを環境変数に設定し、上のPythonコードの上2行を
import os, requests
token = os.environ["LINE_ACCESS_TOKEN"]
に変更します。