簡単にLINEに通知が送れるLINE Notifyが、2025年3月31日にサービス終了するというアナウンスが出ています。
個人的にLINE Notifyを使って、マイコンやクラウドから自分のLINEに通知したりと使用していたので、他のサービスを使って置き換えてみました。
今回は、お試し的にATOMS3 LiteからのLINE通知を試します。
Arduino IDEのコードを紹介するので、Raspberry Pi Pico Wや他のマイコンでもOKだと思います。
置き換え先はLINE公式アカウント
アナウンスを見るとLINE公式アカウントのMessaging APIの利用を検討下さいと書いてあったので、LINE公式アカウントに置き換えたいと思います。
LINE公式アカウント自体は、以前に試した「花粉のピークは過ぎたかもしれないけど、enebularで花粉bot作ってみた」でも扱ってました。
(アカウントの作り方などは、この記事も参考にして下さい)
LINE公式アカウントの設定
アカウントを作る
LINE Business IDでLINE Offical Account Managerにログインしたらアカウントタブから「作成」をクリックしてアカウントを作成します。
各項目を入力します。今回は個人的に使うだけなので、業種は個人としてます。
各同意確認の画面が表示されるので、同意します。
アカウントの作成はこれでOK
アカウントの設定
アカウントを作ったらアカウントの設定画面が表示されます。
最初にアナウンスが表示されますが、メールアドレスでアカウントを作成した場合は、友だち追加のQRコードが表示されるので、このタイミングで通知をしたいLINEで友だち追加を行います。
最初にLINE Messaging APIを使って通知を行うには、チャンネルアクセストークンを発行する必要があります。
次の手順で発行します。
- 「設定」を開く
- 「Messaging API」を開く
- 「Messaging API」を利用する
- プロバイダー名を入力し、「同意する」をクリックしてプロバイダーを作成する
- 個人的に利用する場合は、プライバシーポリシーと利用規約の登録は、空欄のままでOK。そのまま「OK」をクリック
- LINE Developersを開く
- LINE Developersのコンソールを開く(通常、LINE Offical Account Managerでサインインしてる場合は、同じアカウントなのでそのまま開けます)
- 作成したプロバイダー、チャンネルを開く
- 「Messaging API設定」を開く
- 下の方にあるチャンネルアクセストークンの発行をクリック
チャンネルアクセストークンの発行はこれでOKです。
あとで、コピーボタンからコピーして、コードに貼ります。
マイコン側のスケッチ
今回は、ATOM S3 Liteのボタンを押すと通知するようにスケッチを書いてます。
Arduino対応のマイコンであれば、一部を書き換えれば使用できると思います。
LINEのMessaging APIとしては、ブロードキャストメッセージを使用しています。
このAPIは、友達全員にメッセージを送るためのAPIです。今回は個人的に使用するので問題ないですが、LINE公式アカウントを複数の人で使っている場合は、全員に同じメッセージが送信されます。
スケッチを使用する場合は、以下の部分を環境に合わせて書き換えて下さい
-
チャンネルアクセストークンを入力して下さい
⇒ LINE Developersのコンソールで発行したチャンネルアクセストークン -
Wi-FiのSSID
⇒ 接続するWi-FiのSSID -
Wi-Fiのパスワード
⇒ 接続するWi-Fiのパスワード
#define CHANNEL_ACCSESS_TOKEN "チャネルアクセストークンを入力して下さい"
#include "M5AtomS3.h"
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "Wi-FiのSSID";
const char* password = "Wi-Fiのパスワード";
const char* authorization ="Bearer " CHANNEL_ACCSESS_TOKEN;
// LINE Messaging API ブロードキャストメッセージで通知
void notify(char* message) {
HTTPClient http;
http.begin("https://api.line.me/v2/bot/message/broadcast");
http.addHeader("Content-Type", "application/json");
http.addHeader("authorization", authorization);
char body[256];
sprintf(body,"{\"messages\":[{\"type\": \"text\",\"text\":\"%s\"}]}",message);
http.POST(body);
Serial.println(http.getString());
http.end();
}
void setup() {
// M5ATOMS3 Lite用の初期設定
auto cfg = M5.config();
AtomS3.begin(cfg);
// シリアルポート設定
Serial.begin(115200);
// Wi-Fi接続
Serial.print("WiFi connecting.");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(100);
}
}
void loop() {
AtomS3.update();
// ボタンが押されているか判断
if (AtomS3.BtnA.wasPressed()) {
// ボタンが押された
notify("ボタンが押されたよ");
}
delay(100);
}
動作確認
M5ATOM S3 Liteのボタンを押すと無事LINEに通知が飛びました。
LINE NotifyとLINE公式アカウントとの違い
LINE Notifyは、LINEアカウントへの通知を簡単な設定で手軽に行えるサービスでしたが、LINE公式アカウントは、たくさんの機能があり、ビジネス向けにも利用されるサービスです。
最近、よく飲食店などでもLINEで、登録するとスマホで注文ができるようになったり、オトクな情報やクーポンなどの配信されていることがあると思います。そこに使用されているのがLINE公式アカウントです。
LINE Notifyはほぼ制限無し、無料で利用できましたが、LINE公式アカウントは無料で利用できる範囲に制限があります。(アカウントを有料プランで設定しなければ、利用できなくなるだけで請求されることはありません)
今回使用したブロードキャストメッセージのAPIも無料のプランだと月に200メッセージまでという制限があります。
メッセージ数ということで、友達が複数いる場合は、マイコンからの1メッセージにつき、送信先の友達分メッセージ数を消費します。また、他のAPIでも送信した先の分だけメッセージ数を消費します。
あと、基本的にLINEアプリから送ったメッセージに対するレスポンスのメッセージには制限がなく、使い放題です。なので、以前の記事で紹介した様にLINE Botとして使用する分には無制限です。
料金プランや制限のあるAPIについては、以下を参照して下さい
LINE公式アカウントでは、LINE Notifyの様に無料で利用しようとすると1日あたりだいたい6メッセージなので、頻繁に通知する用途には向かないと思います。
以上、LINE Notifyの置き換えとして参考にしてもらえればと思います。