6
1

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 19

ライブラリ「LINE Bot Notify」を使った LINE Bot への Push通知【LINEDC】

Last updated at Posted at 2024-12-18

この記事は、「LINEDC Advent Calendar 2024」の 19日目の記事です。

はじめに

この記事では、LINEDC Advent Calendar 2024 の 13日目の記事に登場した @miso_develop さん作のライブラリ「LINE Bot Notify」を使ってみます。

●LINE BotにサクッとPush通知するだけのライブラリ「LINE Bot Notify」 - Qiita
 https://qiita.com/miso_develop/items/b13bd0bbf8fc04912f64

image.png

リポジトリは、以下になるようです。

●miso-develop/linebot-notify: A library for easily sending push notifications to LINE Bot
 https://github.com/miso-develop/linebot-notify

仕様などの確認

上記の記事に書かれたサンプルや仕様は、以下となっています。

サンプル

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()

仕様

image.png

こだわりポイント

このライブラリのこだわりポイントは以下になるようです。

image.png

サクッと試す

それでは実際に試します。

仕様について、「トークン発行までの手軽さを重要視し、チャネルアクセストークンを発行せずともチャネルIDとシークレットだけでも使えるようにしました」という話があります

これについて、今回はチャネルアクセストークンのほうを試してみました。
※ チャネルアクセストークンの発行までを個人的に試したかったため

【追記】チャネルID とシークレットの組み合わせを使う方も試したので、記事に追記しています

LINE Messaging API を使うための下準備

詳細は省略しますが、LINE公式アカウントを作成したりして、Messaging API を利用できる環境を作ります。

●Messaging APIを始めよう | LINE Developers
 https://developers.line.biz/ja/docs/messaging-api/getting-started/#create-oa

image.png

手順は ↓こちらも参照しました。

●LINE Notifyの代替方法として、LINE Messaging APIを利用して、LINEグループに送る。 - Qiita
 https://qiita.com/MikH/items/d9876b6e50f7c8510d0b

「Channel ID」「Channel secret」の発行

「LINE Official Account Manager」から、とりあえず「Channel ID」「Channel secret」を発行しました。

image.png

この時点で、既に「LINE Bot Notify」を使った通知が行える情報はそろっているようです。

チャネルアクセストークンの発行

個人的に、チャネルアクセストークンの発行までを試して進めてみたかったので、その後、「LINE Developersコンソール」からチャネルアクセストークンも発行しました。

image.png

LINEアプリに登録

この後に進む前に、プッシュ通知先の準備をしました。

QRコードを使って LINEアプリへの登録を行い、準備完了です。

image.png

簡単なテスト

準備は整ったので、簡単なテストをやってみます。

Node.js で npm i linebot-notify などというコマンドで、パッケージを準備します。

コードは、上で掲載していたサンプルを用います。その中の「<Channel Access Token>」の部分は、先ほど自分で準備したチャネルアクセストークンに置きかえます(環境変数を使うほうが良いところですが、今回は環境変数は使わず)。

以下、再掲です。
import が使われていますが、それに簡易に対応するためにファイルの拡張子を mjs にしました(もちろん、他の対応方法でも可)。

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アプリへプッシュでメッセージが送られたのが確認できました。さらに、プッシュするメッセージを書きかえて、2回目の送信もやってみました。

以下は、2回のプッシュを行った後の LINEアプリの画面です。

image.png

2回分のメッセージが届いたのが確認できました。

【追記】チャネルID とシークレットの組み合わせも試す

こだわりに書かれていた「チャネルID とシークレットの組み合わせ」のほうも、試してみたので追記します。

使い方は GitHub のリポジトリに書かれている以下となるようです。

image.png

先ほどのコードの以下の部分を書きかえます。

const channelAccessToken = "<Channel Access Token>"
const notify = new LineBotNotify({ channelAccessToken })

書き換え後は以下です。
<Channel ID>」と「<Channel secret>」は、ご自身のものに置きかえてください。

const channelId = "<Channel ID>";
const channelSecret = "<Channel secret>";
const notify = new LineBotNotify({ channelId, channelSecret });

※「オブジェクトリテラルのプロパティ名省略記法」が使われているので、上記の { channelId, channelSecret } の ID・シークレットを格納する変数は、スペルを同じにしてください

{ channelId, channelSecret }{ channelId: channelId, channelSecret: channelSecret } の意味となる省略記法

あと、送るテキストを「"Channel ID・Channel secretでプッシュ!"」という内容にして実行してみました。そうすると、以下のように通知が行われたのが確認できました。

image.png

おわりに

今回、「LINE Bot Notify」を使うことで、簡単にプッシュ通知を行うことができました。

6
1
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
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?