【終了済み】Raspberry PiからLINE Notifyに通知を送る方法を、あえて記録する。
かつてRaspberry Piの温度監視や在庫監視などで定番だった「LINE Notify連携」。サービス終了の背景と当時の実装手順を振り返りつつ、今から作るなら何を使うべきかまで解説します。
01なぜ今「LINE Notify連携」を振り返るのか
結論から言うと、Raspberry PiとLINE Notifyを連携させる方法は現在は実行できません。2024年10月7日に予告された通り、2025年3月31日をもってLINE Notifyのサービスが終了したことがLINE Developers公式のお知らせページで明記されています。しかし「Raspberry Pi LINE Notify」で検索して本記事にたどり着いた方の多くは、①昔書いた記事や本の手順を試して動かず困っている、②今から新しく通知の仕組みを作りたいと考えている、のどちらかだと考えられます。本記事はその両方に応えることを目的とした構成です。
自宅の温度・湿度をRaspberry Piで監視し、閾値を超えたらLINE Notifyで通知を受け取る仕組みを2023年頃に構築したBさん。2025年4月以降、突然通知が届かなくなり、コードにもエラーは出ていないのにcurlコマンドを叩くとレスポンスが返ってこないことに気づく。調べてみるとLINE Notify自体がサービス終了していたことが判明し、通知の仕組みをLINE Messaging APIに作り直すことになった、というケースが典型的です。
Raspberry Piのような個人開発・学習用途では、外部SaaSのAPIに依存する通知の仕組みはサービス終了リスクを常に伴います。今後新しく構築するなら、公式が継続的にサポートを表明しているMessaging APIやメール、Webhook系のサービスを軸に検討するのが安全です。
この後の章では、まず当時のLINE Notifyの仕組みを技術的に振り返り、続いて現行で使える代替手段との比較、実際の設定手順(アーカイブ)、注意点、FAQの順に解説していきます。
02LINE NotifyとRaspberry Piの基礎知識
LINE Notifyとは、外部サービスやプログラムからLINEアプリへHTTP経由でメッセージ通知を送れる、LINEヤフー株式会社が提供していた開発者向けサービスです。GitHubやIFTTTなど多数のサービスがこの仕組みを使って通知連携を提供していました。しかし2025年3月31日のサービス終了以降、LINE NotifyのすべてのAPIおよびマイページ機能が利用できなくなっています。終了後は、公式に案内されているLINE Messaging API(LINE公式アカウントから通知メッセージを送信する仕組み)への移行が推奨されています。
Raspberry Piとは、Raspberry Pi財団(現Raspberry Pi Holdings)が開発する名刺サイズのシングルボードコンピュータです。GPIOピンを使ってセンサーやLEDを直接制御でき、Linux系OS「Raspberry Pi OS」上でPythonなどのプログラムを実行できることから、温度監視・在庫監視・防犯カメラのような「何かが起きたら通知する」用途の定番ハードウェアとして広く使われてきました。現行モデルのRaspberry Pi 5はWi-Fi(802.11 b/g/n/ac)とBluetooth 5.0/BLEを標準搭載しており、有線・無線どちらの環境でも通知プログラムを常時稼働させやすい構成になっています。
LINE Notifyが終了した現在も、「センサーの値が閾値を超えたらスマホに通知したい」というニーズ自体は変わりません。次章では、まず当時どのような技術的な仕組みで通知が実現されていたかを振り返ります。
03仕組み・技術的背景(当時のAPI構成)
LINE Notifyの通知の仕組みは非常にシンプルで、発行したアクセストークンをAuthorization: Bearerヘッダーに付与し、https://notify-api.line.me/api/notify宛にHTTP POSTでメッセージを送るだけでした。Raspberry Pi上のPythonからは、標準的なHTTPクライアントライブラリ「requests」を使って次のように実装するのが一般的でした(※現在は実行してもエラーになります)。
# ※アーカイブ:2025年3月31日のサービス終了以降、このコードは動作しません
import requests
def send_line_notify(message: str, token: str) -> None:
url = "https://notify-api.line.me/api/notify"
headers = {"Authorization": f"Bearer {token}"}
payload = {"message": message}
response = requests.post(url, headers=headers, data=payload)
print(response.status_code, response.text)
if __name__ == "__main__":
send_line_notify("Raspberry Piからの通知テストです", "発行したアクセストークン")
このリクエストは、実際にはcurlコマンドで -H "Authorization: Bearer トークン" と -F "message=..." を指定して同じエンドポイントにPOSTする形で検証されていたことが複数の技術記事で確認できます。GPIOで取得したセンサー値をmessageパラメータに埋め込めば、温度・湿度・人感センサーの検知など、あらゆるイベントをLINEに通知する仕組みを数行のコードで作れる手軽さが評価されていました。
編集部が過去の実装記録を基に振り返ったところ、Raspberry Pi Zero WHのような省電力モデルでも、GPIO監視ループ+LINE Notify通知のような軽量な処理であればCPU負荷はごくわずかで、常時稼働させても問題にならないケースがほとんどでした。この「センサー値取得→条件判定→HTTP POST」という構成自体は、通知先をMessaging API等に置き換えても丸ごと再利用できます。
04比較:LINE Notify(終了)/Messaging API/他の通知手段
| 項目 | A:LINE Notify | B:LINE Messaging API | C:Slack/Discord Webhook |
|---|---|---|---|
| 現在の利用可否 | 不可(2025年3月31日終了) | 可(現行の公式推奨手段) | 可 |
| 導入の手軽さ | トークン発行のみで完結(当時) | 公式アカウント作成+設定がやや必要 | Webhook URL発行のみで比較的簡単 |
| 通知の受け取り方 | 個人のLINEに直接届く(当時) | LINE公式アカウントを友だち追加した上で受信 | Slack/Discordアプリで受信 |
| 料金 | 無料(当時) | プランによりメッセージ通数上限あり | 無料枠あり |
| 参考 | LINE Developers 終了のお知らせ | 編集部見解 | 編集部見解 |
※「導入の手軽さ」「料金」欄の一部は編集部見解によるものです。最新の料金体系は各サービスの公式サイトで確認してください。
結論として、LINEアプリへの通知にこだわるならMessaging APIへの移行一択です。一方で「通知先はLINEでなくてもよい」という場合は、Webhook形式で導入が容易なSlackやDiscordへの通知に切り替えるという選択肢も、個人のRaspberry Piプロジェクトでは現実的です。
05実践:当時の設定手順を5ステップで振り返る
以下は、LINE Notifyがまだ稼働していた頃の設定手順のアーカイブです。現在この手順を新規に実行することはできませんが、Messaging APIなど別サービスに置き換える際にも「トークン取得→設定ファイルに保存→HTTPリクエストで送信」という流れ自体は共通するため、構成の参考として残します。
(当時)LINE Notifyにログインしトークンを発行する
LINE Notifyのマイページにログインし、「トークンを発行する」からトークン名と通知先のトークルームを指定してアクセストークンを取得する、という流れが一般的でした。
複数のRaspberry Piプロジェクト(温度監視・在庫監視など)を並行運用していた場合、トークンごとに用途がわかる名前(例:「temp-monitor」「stock-alert」)を付けておくことで、後から見返した際に混乱しにくくなる、という運用の工夫がよく行われていました。
(当時)Raspberry Pi側でPython環境とrequestsを準備する
Raspberry Pi OSには標準でPython3が搭載されているため、pip install requestsでHTTPクライアントライブラリを追加するだけで通知プログラムの実行環境が整いました。
(当時)取得したトークンを設定ファイルに分離する
コードへのべた書きを避け、config.jsonや環境変数にトークンを保存し、GitHub等で公開する際に誤ってトークンごと公開してしまわないようにする運用が推奨されていました。
(当時)センサー値の条件分岐と通知処理を実装する
第3章のサンプルコードのように、GPIOやI2Cセンサーから取得した値が閾値を超えた場合にのみsend_line_notify()を呼び出す、という条件分岐を組み込むことで、無駄な通知を減らす実装がよく使われていました。
編集部の過去の実装記録では、閾値判定にヒステリシス(一度通知したら一定時間は再通知しない、など)を設けることで、値が閾値付近で揺れ動く際の通知の連発を防げていました。これはMessaging API移行後の実装でもそのまま応用できる工夫です。
今から作るなら:Messaging APIへの置き換えポイント
上記4ステップのうち、変更が必要なのは「①トークン発行の窓口」と「③④で呼び出すエンドポイント・認証方式」のみです。LINE公式アカウントの開設とMessaging APIのチャネルアクセストークン発行に置き換え、送信先エンドポイントをhttps://api.line.me/v2/bot/message/push系のAPIに変更すれば、GPIO監視やセンサー値の条件分岐といったRaspberry Pi側のロジックはほぼそのまま流用可能です。
06注意点・よくある誤解
誤解1:古い記事やAI回答通りにやれば今でも動くはず
LINE Notifyは2025年3月31日に完全終了しており、トークン発行画面自体にアクセスできません。ネット上や書籍に残る手順は、実行できない過去の情報であることを前提に読む必要があります。
誤解2:既存のトークンさえあれば通知は送れる
手元に過去発行したアクセストークンが残っていても、サービス自体が終了しているためAPIへのリクエストは失敗します。トークンの有無にかかわらず利用はできません。
誤解3:Messaging APIも同じ感覚で無料・無制限に使えるはず
Messaging APIはLINE公式アカウントのプランによって無料で送信できるメッセージ通数に上限があります。個人のRaspberry Piプロジェクトで頻繁に通知を送る用途では、事前にプランごとの上限を確認しておくことをおすすめします(編集部見解)。
07よくある質問
参考文献
- LINE Developers「LINE Notify提供終了のお知らせ」LINEヤフー株式会社, 2025年, https://developers.line.biz/ja/news/2025/04/01/line-notify/
- Qiita「LINE Notifyのトークンを取得方法・備忘録」2020年, https://qiita.com/chivi_dump/items/a62a7b8c32e6ea894a09
- スイッチサイエンス「Raspberry Pi」製品カテゴリページ, 2026年, https://www.switch-science.com/pages/raspberry-pi
- INTERNET Watch「『LINE Notify』が2025年3月末でサービス終了。代替としてMessaging APIの利用を推奨」2024年, https://internet.watch.impress.co.jp/docs/yajiuma/1629950.html
※出典の明記がない数値・シナリオは「編集部見解」または「編集部想定シナリオ」として本文中に明示しています。※本記事はサービス終了済みの情報をアーカイブとして扱う目的で作成されており、掲載コードは現在動作しません。
コメント