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でログインします。

LINE Notifyログイン画面

ログイン後、マイページを開き、一番下の方にある"トークンを発行する"ボタンを押します。

マイページ

すると、トークン発行画面が開きます。
この画面で、トークン名(通知上で表示されます)と送り先を指定します。
自分にしか送らない場合は、"1:1でLINE Notifyから通知を受け取る"を選択してください。

トークンの発行

発行すると、下記のように英数字の長ったらしい文字列が表示されます。
これがアクセストークンです。
この文字列をどこかにコピーしておいてください。
このまま閉じるボタンを押すと、トークンは金輪際見ることはできません。
注意してください。
まあ、トークンの発行はいくらでもできるので、閉じてしまってもそこまで絶望する必要はありません。

発行されたトークンの確認

これで、事前準備は完了です!

とりあえず送ってみよう!

まずは難しいことは考えず、LINE Notifyにメッセージを送ってみましょう。
難しいことを考えたくないので、生成AIにPythonスクリプトを作ってもらいます。

LINE notify でメッセージを送る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のコマンドプロンプトから送ってみます。

実行結果

なにやらメッセージの送信に成功したようです。
ここでスマホを確認してみると・・・

スマホのLINE画面

先ほど指定したトークン名とともに、Pythonスクリプトで送信したメッセージが表示されました。成功です!
このスクリプトをちょっと書き換えてRaspberryPiで使えば、収集したデータに基づいてメッセージを送信することができます。こうして、LINE Notifyを使って外の世界とつながる手段を確立できました。

まとめ

今回は、とりあえずLINE Notifyを使ってみました。
今後は、応用として、収集した電力消費のデータをもとに、電力の使い過ぎの通知を送る、などをしていきたいです。

この記事が気に入ったらサポートをしてみませんか?