はじめに
2024年10月7日、界隈に衝撃的なニュースが駆け巡りました。
LINE Notifyサービス終了のお知らせです。
私自身個人プロダクトで愛用させていただいており、また今年開催されたテックシーカーハッカソンでのLINE APIインプットイベントにて「IoTと親和性のあるLINE API」としていの一番に紹介していました。
この悲報に界隈は悲しみのポストに溢れていました。
私は一縷の望みを託しひとつのポストを投稿しました。
しかしこの悲痛な叫びはあまり響いていない気がしたので自分で作りました。
LINE Bot Notify
LINE BotにサクッとPush通知するだけのライブラリです。
チャネルアクセストークンもしくはチャネルID & シークレットのペアを指定しインスタンス生成します。
あとは通知したいメッセージを添えてpushメソッドを実行するだけです。
import { LineBotNotify } from "linebot-notify"
const channelAccessToken = "<Channel Access Token>"
const notify = new LineBotNotify({ channelAccessToken })
const main = async () => {
const remainingQuota = await notify.push("LINE Bot Notify!")
console.log(remainingQuota)
}
main()
LINE Notifyはほぼ利用無制限でしたが、LINE Botの場合はフリープランだと月200通までの制限があります。
ですので残Push数をpush
メソッドの戻り値で返すようにしています。
Push通知はせず残Push数のみを返すgetRemainingQuota
メソッドも用意しているので、push
メソッド実行前の残Push数をチェックし必要に応じてアラート文を加えてpush
メソッドを実行するなんて使い方がいいかもしれません。
インストール
npmで公開しているので以下のコマンドで一発です。
npm install linebot-notify
push(message, { to, notificationDisabled })メソッド
メッセージ以外に任意のオプションを指定できます。
パラメーター | 必須 | 型 | 既定値 | 内容 |
---|---|---|---|---|
message | ✔ | string | - | 送信するメッセージを指定します。 |
to | string | string[] | undefined |
送信先を指定します。 単一指定の場合はユーザーIDもしくはグループIDを、配列指定の場合はユーザーIDを指定します。 |
|
notificationDisabled | boolean | false |
true を指定するとメッセージ送信時に通知を行いません。 |
// メッセージの送信(ブロードキャスト)
await notify.push("LINE Bot Notify!")
// ユーザーもしくはグループを指定してメッセージ送信
await notify.push("LINE Bot Notify!", { to: "<User ID or Group ID>" })
// 複数ユーザーを指定してメッセージ送信(マルチキャスト)
await notify.push("LINE Bot Notify!", { to: ["<User ID>", "<User ID>"] })
// ユーザーに通知されないようにメッセージ送信
await notify.push("LINE Bot Notify!", { notificationDisabled: true })
こだわりポイント
チャネルIDとシークレットがあれば使える
LINE Notifyの魅力のひとつはサクっと使い始められることだったのではないかと思っています。
Webコンソールにログインしてトークン発行してあとはWeb APIたたくだけ、という手軽さです。
このトークン発行までの手軽さを重要視し、チャネルアクセストークンを発行せずともチャネルIDとシークレットだけでも使えるようにしました。
現在LINE Botの新規作成は「LINE Official Account Manager」から行いますが、チャネルアクセストークの発行にはさらに「LINE Developersコンソール」で操作を行う必要があります。
しかしチャネルIDとシークレットの取得であれば「LINE Official Account Manager」のみで完結できます。
※商用プロダクトで使用する場合はちゃんとチャネルアクセストークンを使用することをおすすめします
依存ゼロ
最初はline/bot-sdk
をラップしようかと思っていましたが、提供機能がシンプルすぎるので1から実装し依存もゼロにしました。
軽くてシンプルな作りになっています。
おわりに
ここひと月ほどLINE Notifyを使用していた個人プロダクトをLINE Bot Notifyに切り替えて運用しておりまして、当たり前ですが特段問題なく使えています。
フリープランでは月200通までと制限はあるものの、私の個人プロダクト利用であれば問題ない範囲の良心的な制約です。
月200通制限を許容できる方はぜひ「LINE Bot Notify」をお試しいただけますと幸いです。