2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Node-REDAdvent Calendar 2024

Day 14

LINE Messaging APIノード更新2024年版: 設定ノードが追加されました #linedc #noderedjp

Last updated at Posted at 2024-12-29

こんばんわ n0bisukeです。

LINE Messaging APIのノードを作ってますが、色々アップデートをしたので記録しておきます。
目玉機能の設定ノード追加 が大きいです。v0.4.0にしました。

  • 設定ノードの追加
  • テキストメッセージv2への対応
  • 各種ノードの追加 getProfile / getBotInfo / Loading
  • 細かな部分の改修

他にも今回はアップデート箇所が多いです。
(年に一度アドカレにあわせて更新をするようなペースになっている気もします。)

1. 設定ノードの追加(lineConfig)

設定ノードの追加が一番大きいです。

今までLINE Botのチャンネルアクセストークンやシークレットの情報は各ノードに直打ちしてましたが、これだと複数のBOTの管理や複数ノードで同じBOTを利用したい場合にコピペを毎回しないとダメでした。

一度登録しておくと裏側の設定ノード

スクリーンショット 2024-12-29 23.49.17.png

設定画面

スクリーンショット 2024-12-29 23.51.22.png

設定ノード利用時の注意: 表側の実行ノードと裏側の設定ノードは別物

設定ノードは通常のノード(表側に見えるノード)とは異なり、 裏側にいるノード という認識を持っておくと良いと思います。

スクリーンショット 2024-12-29 23.56.13.png

表側の実行ノードと裏側の設定ノードは別物なので表側の実行ノードを消しても裏側の設定ノードは残るということを覚えておきましょう。

右上のメニューの設定ノードから現在存在する設定ノードを確認できます。

実行ノード側で設定を追加すると設定ノードは複製されていきますが、独自ノードをアンインストールするときにこの設定ノードが残ってしまっていてエディタ上は綺麗にしているのにノードがまだ使われていてアンインストールできないといったゾンビプロセスのせいでシャットダウンできない みたいな状態が発生する可能性があります。(僕は体験しました苦笑)

2. テキストメッセージv2への対応

Messaging APIのテキストメッセージv2に対応させました。これは @youtoy さんが僕がまとめるより早く解説してくれたので引用します笑

グループでのユーザーへのメンションなどが使えるようになっています。

3. 各種ノードの追加

スクリーンショット 2024-12-29 23.46.51.png

  • ユーザーの情報取得
  • BOTの情報取得
  • ローディングアニメーション

のAPIに対応させました。

ローディングアニメーション以外は今更感ありますね。ローディングアニメーションは今年の機能なので割とナウい感じ。

ローディングアニメーションは仕様上グループでは利用できず、BOTとユーザーの個別会話でのみ利用できるので注意しましょう。

4. 細かな部分の改修

内部的なものですが少し改修しています。

type="text/x-red"をやめてみた (これ弊害ある?)

Node-REDのUIを作る時にtype="text/x-red"というMIMEタイプを利用していましたがtype="text/html"にしてみました。

公式のリポジトリにあるノードのUIをみたら普通にtype="text/html"を使ってます。

Node-RED的なお作法だと思ってそうしてたんですけど、開発時にシンタックスハイライトが効いてくれないんですよね。地味に見ずらいしここだけのために設定するのもちょっと...って感じでした。

type="text/x-red" だとハイライトされない
スクリーンショット 2024-12-26 21.57.52.png

type="text/html"だとハイライトされる 😃
スクリーンショット 2024-12-26 21.59.07.png

node-red:common.label.name

UI作る時のここのフィールド名について、今までは"Name"など直打ちしてました。

スクリーンショット 2024-12-26 22.10.21.png

<label for="node-input-name">Name</label>

内部で使えて定義されている変数があるみたいですね。

<label for="node-input-name"><span data-i18n="node-red:common.label.name"></span></label>

このように指定すると勝手に多言語化してくれるみたい(ドキュメント読んでない)です。

node-red:common.label.name指定で日本語だと"名前"って表示になりました。

スクリーンショット 2024-12-26 22.13.21.png

これ便利。。

設定ノード追加に伴いPushやReplyなどのノードにも機能追加

当たり前ですが、設定ノードをPushやReplyなどの各種ノードで使えるようにしないといけないので機能が追加されています。

スクリーンショット 2024-12-30 0.13.27.png

ただ後方互換性もあったほうがいいので、(AccessToken)という感じでカッコ書きで直接アクセストークンを設定できるようにもしておきました。

この辺りバグがないか少し不安

まとめ

たぶん使いやすくなったと思いますがやれることが多いと複雑になるという側面もあるので悩ましいです。

LINE Bot開発をしている人、ぜひ使ってみてコメントやissueなどくれると嬉しいです。

良いお年を〜

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?