LINE Notifyを使って外の世界とつながる
こんにちは。
今回は、電子工作で作った作品を外の世界につなげるために、LINE Notifyを使ってみました。
作品の概要
私は、家のネットワークを利用して、家の環境や電力使用量のデータを収集するシステムを作っています(システム概要は下図ご参照)。
いわゆるホームIoTというカテゴリのものですね。
収集したデータには、ホームネットワーク内であればアクセスすることができますが、外に出てしまえばネットワークにアクセスすることはできなくなります。
アクセスする手段としてはプロバイダと固定IPの契約をするか、VPNを使用する方法があります。しかし、我が家は集合住宅で、インターネット回線は賃貸契約に無料でついてきたものを使っていて、残念ながらこの回線ではそのような契約をすることはできません。
そのため、私の作品は世界から完全に孤立した存在となっています。
・・・まあ、家の気温とか電力とか、外から見てどうすんねんっていう話ですが、違う用途でアクセスしたくなった時、どうすることもできません。
しかし、こんな状況でも、外の世界とつながる方法はあります。
それは、家のネットワーク側からデータを送信することです。
そこで、今回はLINE NotifyというLINEが提供しているAPIを使用して、家のネットワーク内から、LINEメッセージを送ってみます。
LINE Notifyを使おう
LINE Notifyとは
LINE以外のアプリやサービスから、LINEに通知を送ることができるサービスです。
無料で使用することができ、通知の内容も任意で設定することができます。また、グループに通知することもできます。
こんな便利なものを無料で使うことができるなんて・・・(LINEの回し者ではありません)
使い方
LINE Notify APIに、アクセストークンを添えてメッセージをPOST送信するだけ。超簡単にできちゃいます。
事前準備として、アクセストークンの発行が必要です。
アクセストークンの発行方法
LINE NotifyのWebページ(下記リンク)に飛び、LINE IDでログインします。
ログイン後、マイページを開き、一番下の方にある"トークンを発行する"ボタンを押します。
すると、トークン発行画面が開きます。
この画面で、トークン名(通知上で表示されます)と送り先を指定します。
自分にしか送らない場合は、"1:1でLINE Notifyから通知を受け取る"を選択してください。
発行すると、下記のように英数字の長ったらしい文字列が表示されます。
これがアクセストークンです。
この文字列をどこかにコピーしておいてください。
このまま閉じるボタンを押すと、トークンは金輪際見ることはできません。
注意してください。
まあ、トークンの発行はいくらでもできるので、閉じてしまってもそこまで絶望する必要はありません。
これで、事前準備は完了です!
とりあえず送ってみよう!
まずは難しいことは考えず、LINE Notifyにメッセージを送ってみましょう。
難しいことを考えたくないので、生成AIにPythonスクリプトを作ってもらいます。
こんなのを作ってくれました。
import requests
def send_line_notify(notification_message):
"""
LINEに通知する
"""
line_notify_token = 'ここにトークンを入力'
line_notify_api = 'https://notify-api.line.me/api/notify'
headers = {
'Authorization': f'Bearer {line_notify_token}'
}
data = {
'message': f'message: {notification_message}'
}
response = requests.post(line_notify_api, headers=headers, data=data)
return response.status_code
# 通知を送るメッセージ
message = 'Hello, this is a test message from LINE Notify'
# 通知を送信
status = send_line_notify(message)
if status == 200:
print('Message sent successfully.')
else:
print('Failed to send message.')
このスクリプトは、指定したトークン宛に、"Hello, this is a test message from LINE Notify"というメッセージを送ります。
line_notify_token変数に先ほど発行したトークンを指定して、実行してみましょう。
今回はAnacondaのコマンドプロンプトから送ってみます。
なにやらメッセージの送信に成功したようです。
ここでスマホを確認してみると・・・
先ほど指定したトークン名とともに、Pythonスクリプトで送信したメッセージが表示されました。成功です!
このスクリプトをちょっと書き換えてRaspberryPiで使えば、収集したデータに基づいてメッセージを送信することができます。こうして、LINE Notifyを使って外の世界とつながる手段を確立できました。
まとめ
今回は、とりあえずLINE Notifyを使ってみました。
今後は、応用として、収集した電力消費のデータをもとに、電力の使い過ぎの通知を送る、などをしていきたいです。
この記事が気に入ったらサポートをしてみませんか?