目 次
Line notifyの修了により、このページは終了となります。(2025/3/22
前回、作成した電話着信お知らせや家庭菜園通報機能をLINEに通知させるために「LINE notify」を使用します。
Line notifyを登録すると「1対1のトークルーム」へ自動的に通知を行うことができます。
メールアドレスの確認
まずはLINEから登録した時のメールアドレスとパスワードを確認します。
LINEを開いて下部の「ホーム」を選択後、右上の歯車アイコンを選択し「設定」を選択します。

「アカウント」を選択します。

ここに登録時の「メールアドレス」がのっています。パスワードは忘れたなら変更なりしてください。

LINE Notifyの登録
さあ!イザッ登録でいきなりハマりました。(汗
下記のホームページへアクセスします。
ページ右上の「ログイン」を選択し先ほどのメールアドレスとパスワードを入力するとログインできます。ログインできたら「マイページ」を開きます。

「マイページ」に入ると下部に「トークンを発行する」ボタンがでるとWEBに書いてありましたが、出てこない!!
な!?何故だ.....

書いてあるページあるのかな!?これスマホでは「トークンを発行する」ボタンがでてきません。パソコンからアクセスしたら出てきました。ここで少しハマリました。
と言う事で、気を取り直してパソコンにてアクセスします。
ログオンすると「トークンを発行する」ボタンが出てきました。
これを待ってました。(笑

「トークン名を記入してください」へ下画像では仮に「bot」と入れます。
自動で投稿してくれる名前がbotだと寂しいので、後に短くて良い名前に作成し直しました。(汗
グループを先に作成して、そこに自動投稿もできるのですが、私、ボッチッなので「1:1でLINE Notifyから通知を受け取る」を選択しました。
「発行する」を選択します。

「発行したトークンはこちらです。」でモザイクがかかっている所を「コピー」でコピペします。
これキー列が長いので「コピー」でコピペしないと表示上、隠れている部分があるので取りこぼして、再度、やり直しとなるので注意してください。
無事、キーをコピーできたら「閉じる」を選択します。

しっかり開始できると以下の画像のようになります。

次の操作はスマホです。
LINE公式からLINE Notifyの表示がでてくるので「LINE Notify」を「友だちに追加」してください。
友達にならないとできません(笑

「追加」を選択します。

無事、つながると以下のような画像となります。
※一部bot確認時の表示が含まれています。

LINE Notify動作確認
ここからはサーバーよりコマンド操作となります。
curlのパッケージがなければインストールしてください。
# curl -X POST -H “Authorization: Bearer ここにはキー” -F “message=ABC” https://notify-api.line.me/api/notify
成功すれば、以下のように「bot」から「ABC」という言葉が投稿されます。

Pythonプログラム
あまりパイソンを使っていないので日本語エンコードの要領が分かりませんでしたが、最初の方でエンコーディングを指定してあげないとダメなようです。
# -*- coding: utf-8 -*-
上記コードを入れないと以下のようなエラーとなります。
File “./message.py”, line 8
SyntaxError: Non-ASCII character ‘\x82’ in file ./message.py on line 8, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
requestsのライブラリを使用するので記述します。
notify apiのアドレスとアクセストークン及びヘッダを記述します。
アクセス権は与えてあげてください。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
token = “**************************************”
url = “https://notify-api.line.me/api/notify”
headers = {“Authorization”: “Bearer ” + token}
payload = {“message”: “投稿できたぜ!”}
requests.post(url, headers=headers, data=payload)
実行すると、下画像のように投稿されます。
※一番下は、最終的に作成した投稿です。LINEスタンプも表示できます。

LINEスタンプを表示させてみる
LINEスタンプには固有の番号があるのでそれを指定します。
ラインスタンプコード表
「stickerId」が「STKID」の番号となっています。
#!/usr/bin/env python
import requests
token = “********************************”
url = “https://notify-api.line.me/api/notify”
headers = {“Authorization”: “Bearer ” + token}
payload = {“message”: “kore”,”stickerPackageId”:1, “stickerId”:403}
requests.post(url, headers=headers, data=payload)
実行すると以下画像のように怯えた画像が登録されます。

絵文字も文字の前に付けたかったのですが、色々、調べましたができませんでした。PHPではやり方が書いてありましたが、Pythonは難しいようです。
nkfで文字コードを変更してみたりしましたができませんでした。
UTF-32Bを指定してあげるみたいですが、分かる方いたら教えてください。
参考までに 絵文字の文字コード表
シェルとPythonを連携させて、更に改行コードも入れてみる
ここが肝心な所です。
自宅電話の着信をSyslogから受け取りスマホへメールでお知らせする
上記で作ったシェルと連携させます。
Python側はシェルからの引数で表示を整形します。
シェル側には以下を追加します。
*は自分で作ったpyの名前が入ります。で引数はシェルで使っていた変数名となります。それを引数の第1引数、第2引数として使います。
#LINE he message
/usr/bin/python ******.py $DATA_FST $DATA
上記*と同じ、自分すきな名前.py です。
引数はデブルクォーテーションで閉じてしまうとダメなので2バイト文字と改行コードのみ囲みます。
改行は色々と試しましたがWindowsデフォの\r\nで改行できました。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import sys
msgs = sys.msgv
message = “からお知らせです\r\n\r\n自宅に電話がありました\r\n\r\n” + msgs[1] + “さんから電話です。\r\n電話番号:” + msgs[2]
token = “********************************”
url = “https://notify-api.line.me/api/notify”
headers = {“Authorization”: “Bearer ” + token}
payload = {“message”: message}
requests.post(url, headers=headers, data=payload)
見事、シェルとLINEが連携できました。
