7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LINEDCAdvent Calendar 2024

Day 13

LINE BotにサクッとPush通知するだけのライブラリ「LINE Bot Notify」

Posted at

はじめに

2024年10月7日、界隈に衝撃的なニュースが駆け巡りました。
LINE Notifyサービス終了のお知らせです。

私自身個人プロダクトで愛用させていただいており、また今年開催されたテックシーカーハッカソンでのLINE APIインプットイベントにて「IoTと親和性のあるLINE API」としていの一番に紹介していました。

image.png

この悲報に界隈は悲しみのポストに溢れていました。
私は一縷の望みを託しひとつのポストを投稿しました。

しかしこの悲痛な叫びはあまり響いていない気がしたので自分で作りました。

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」をお試しいただけますと幸いです。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?