こんばんわ n0bisukeです。
LINE Messaging APIのノードを作ってますが、色々アップデートをしたので記録しておきます。
目玉機能の設定ノード追加 が大きいです。v0.4.0
にしました。
- 設定ノードの追加
- テキストメッセージv2への対応
- 各種ノードの追加 getProfile / getBotInfo / Loading
- 細かな部分の改修
他にも今回はアップデート箇所が多いです。
(年に一度アドカレにあわせて更新をするようなペースになっている気もします。)
1. 設定ノードの追加(lineConfig)
設定ノードの追加が一番大きいです。
今までLINE Botのチャンネルアクセストークンやシークレットの情報は各ノードに直打ちしてましたが、これだと複数のBOTの管理や複数ノードで同じBOTを利用したい場合にコピペを毎回しないとダメでした。
一度登録しておくと裏側の設定ノード
設定画面
設定ノード利用時の注意: 表側の実行ノードと裏側の設定ノードは別物
設定ノードは通常のノード(表側に見えるノード)とは異なり、 裏側にいるノード という認識を持っておくと良いと思います。
表側の実行ノードと裏側の設定ノードは別物なので表側の実行ノードを消しても裏側の設定ノードは残るということを覚えておきましょう。
右上のメニューの設定ノード
から現在存在する設定ノードを確認できます。
実行ノード側で設定を追加すると設定ノードは複製されていきますが、独自ノードをアンインストールするときにこの設定ノードが残ってしまっていてエディタ上は綺麗にしているのにノードがまだ使われていてアンインストールできないといったゾンビプロセスのせいでシャットダウンできない みたいな状態が発生する可能性があります。(僕は体験しました苦笑)
2. テキストメッセージv2への対応
Messaging APIのテキストメッセージv2に対応させました。これは @youtoy さんが僕がまとめるより早く解説してくれたので引用します笑
グループでのユーザーへのメンションなどが使えるようになっています。
3. 各種ノードの追加
- ユーザーの情報取得
- 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的なお作法だと思ってそうしてたんですけど、開発時にシンタックスハイライトが効いてくれないんですよね。地味に見ずらいしここだけのために設定するのもちょっと...って感じでした。
node-red:common.label.name
UI作る時のここのフィールド名について、今までは"Name"など直打ちしてました。
<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
指定で日本語だと"名前"って表示になりました。
これ便利。。
設定ノード追加に伴いPushやReplyなどのノードにも機能追加
当たり前ですが、設定ノードをPushやReplyなどの各種ノードで使えるようにしないといけないので機能が追加されています。
ただ後方互換性もあったほうがいいので、(AccessToken)
という感じでカッコ書きで直接アクセストークンを設定できるようにもしておきました。
この辺りバグがないか少し不安
まとめ
たぶん使いやすくなったと思いますがやれることが多いと複雑になるという側面もあるので悩ましいです。
LINE Bot開発をしている人、ぜひ使ってみてコメントやissueなどくれると嬉しいです。
良いお年を〜