node-red-contrib-line-messaging-api
Version:
Node-RED nodes for LINE Messaging API integration. Build LINE Bots easily with visual programming.
171 lines (111 loc) • 6.9 kB
Markdown
# node-red-contrib-line-messaging-api
[English version](README.md)
LINE Messaging APIのNode-REDノードです。
Node-REDのビジュアルプログラミングインターフェースで簡単にLINE Botを構築できます。
## このプロジェクトについて
このパッケージはLINE Messaging APIと統合するためのNode-REDノードを提供し、Node-REDのビジュアルフローエディターを使用してLINE Botを作成できます。Webhook、メッセージ送信、LINE Botイベントの処理をシンプルなドラッグアンドドロップノードで実現できます。
## インストール
Node-REDのルートディレクトリで以下のコマンドを実行してください:
```sh
npm install node-red-contrib-line-messaging-api
```
またはNode-REDのパレットマネージャーを使用:
1. Node-REDメニューを開く
2. 「パレットの管理」を選択
3. 「ノードを追加」タブをクリック
4. 「line-messaging-api」を検索
5. インストールをクリック
## 設定
### LINE Bot設定ノード
LINE Botの認証情報(チャンネルシークレット、チャンネルアクセストークン)を保存する設定ノードです。このバックグラウンドノードはエディターには表示されず、ReplyやPushノードの設定UIからアクセスできます。
> 
作成したLINE Bot設定は複数のReplyノードやPushノードで共有できます。
## 利用できるAPIと利用イメージ
### Webhook & Reply Message
1. Webhookノードを配置し、ダブルクリックで設定を開き、指定した `/path` と自身のホスト名の組み合わせ(Webhook URL)を、LINE Developersであらかじめ作成したMessaging APIに登録します。
2. ReplyMessageノードを配置し、チャネルのシークレットとアクセストークンを設定します。
3. WebhookノードとReplyMessageノードを接続してLINEにメッセージを送るとオウム返しBotができます。
[](https://gyazo.com/7da2dbecfc69515edf852cf7a26d9196)
4. WebhookノードとReplyMessageノードの中間で `msg.payload` をうまく作成すると様々なメッセージが送れます。文字列を指定すると通常のテキストメッセージに、[LINEで定義されているメッセージオブジェクト](https://developers.line.biz/ja/reference/messaging-api/#message-objects)を指定すればそのメッセージを返信することができます。
### Push Message
Pushメッセージを送るときにmsg.payloadにテキストを入れることでテキストメッセージの送信ができます。
> 
#### テキストメッセージv2でユーザーにメンション
Pushメッセージを送るときにmsg.payloadに`{hoge}`などのテキストを入れつつ、msg.substitutionを設定することでテキストメッセージv2を使ってユーザーにメンションすることができます。
- msg.payload: `Welcome, {user1}! {laugh}\n{everyone} There is a newcomer!`
- msg.substitution:
```json
{"user1": {"type": "mention", "mentionee": {"type": "user", "userId": "Uxxxxxxxxxxxx"}},"laugh": {"type": "emoji","productId": "670e0cce840a8236ddd4ee4c","emojiId": "002"},"everyone": {"type": "mention","mentionee": {"type": "all"}}}
```
> 
#### 任意のメッセージ
msg.payloadに配列や[メッセージオブジェクト](https://developers.line.biz/ja/reference/messaging-api/#message-objects)を設定することで任意のメッセージを送信できます。
```js
msg.payload = [
{
type: "text",
text: "hogehoge",
},
{
type: "image",
originalContentUrl: 'https://i.gyazo.com/e772c3b48a07716226f7184d7f417cda.png',
previewImageUrl: 'https://i.gyazo.com/e772c3b48a07716226f7184d7f417cda.png'
}
]
return msg;
```
### Broadcast Message
友達全員にメッセージ配信します。
> 
### Loading
ローディングアニメーションを表示させます。
> 
> https://developers.line.biz/ja/reference/messaging-api/#display-a-loading-indicator
### getProfile
ユーザーの情報を取得します。
https://developers.line.biz/ja/reference/messaging-api/#get-profile
### getBotInfo
BOTの情報を取得します。
https://developers.line.biz/ja/reference/messaging-api/#get-bot-info
## ノードタイプ
| ノードタイプ | 説明 |
|------------|------|
| **Webhook** | LINE プラットフォームからのwebhookを受信 |
| **Reply Message** | リプライトークンを使用して返信メッセージを送信 |
| **Push Message** | 特定のユーザーにプッシュメッセージを送信 |
| **Broadcast Message** | Bot友達全員にメッセージを送信 |
| **Loading** | ローディングインジケーターを表示 |
| **Get Profile** | ユーザープロフィール情報を取得 |
| **Get Bot Info** | Bot情報を取得 |
| **Limit** | メッセージクォータ制限を確認 |
| **LINE Bot Config** | Bot認証情報を保存(バックグラウンドノード) |
## 動作環境と要件
- **HTTPS必須**: 本番環境のwebhookエンドポイントには必要
- **LINE Developersアカウント**: LINE Bot作成に必要
- **Node-RED**: Node-RED v1.0+に対応
- **依存関係**: @line/bot-sdk, express, body-parser, cors
## リンク
* [Node-RED Flows](https://flows.nodered.org/node/node-red-contrib-line-messaging-api)
* [Libraries.io](https://libraries.io/npm/node-red-contrib-line-messaging-api)
* [npm](https://www.npmjs.com/package/node-red-contrib-line-messaging-api)
## リリースノート
- 2024/12/27: Loading / getProfile / configノードの追加
- 2023/12/11: Notify_newを追加。スタンプや画像も送れるように。
- 2021/8/1: Reply Messageが画像に対応(thanks [@ukkz](https://github.com/ukkz))
- 2020/12/17: Bloadcast Messageに対応、Reply MessageがFlex Messageに対応(thanks [@gaomar](https://github.com/gaomar))
- 2019/2/13: PUSH MessageとLINE Notify対応
- 2018/10/11: 基本的なリプライ機能で初回リリース
## コントリビューション・ライセンス
プルリクエストやバグレポートを歓迎します。
このプロジェクトは[Apache 2.0 ライセンス](https://www.apache.org/licenses/LICENSE-2.0)の下で提供されています。
作成者・メンテナー: [n0bisuke](https://github.com/n0bisuke)