自分のためのLINE Bot用npmパッケージをつくった


はじめに

Messaging APIを使ってLINE Botを何回か作っていると、同じようなコードを書くのが面倒になるので自分用のnpmパッケージを作ってみようと思いました。

つくったもの

今回はnpmパッケージ公開の練習を兼ねているので簡単なものを作りました。ここで公開しています。
内容として、LINE Bot用のNode SDKでのreplyMessageの

{
  type: 'text',
  text: 'Hello'
}

というテキストメッセージのためのオブジェクトを入力したテキストのみから作成する関数をつくりました。機能としては、

  1. 単機能でのテキストメッセージ作成
  2. 配列形式での複数メッセージ作成
  3. 配列形式で渡されたテキストからどれか一つをランダムで選んでメッセージ作成

この3つをサポートしています。特に大した内容ではありませんが、一々オブジェクト組み上げるの面倒だったのと、複数メッセージ作るのがだるかったので少し快適になりました。ちなみに複数メッセージについてはこちらを参照してください。

単体でのメッセージ作成

単純に入力したテキストデータを適切なオブジェクトに変換します。

buildReplyText('test')
/*
return
{
  type: 'text',
  text: 'test'
}
*/

複数のメッセージ作成

配列を受け取った場合は配列形式のオブジェクトで返します。順番は配列の0のインデックスからになります。

buildReplyText(['test1', 'test2'])
/*
return
[{
  type: 'text',
  text: 'test1'
},
{
  type: 'text',
  text: 'test2'
}]
*/

ランダムなメッセージを作成

配列を受け取ったときにどれか一つをランダムで返す関数もサポートしました。

buildReplyRandomText(['test1', 'test2', 'test3'])
/*
return
{
  type: 'text',
  text: 'test2'
}
*/

参考にしたサイト

少し古いですが、このサイトがとてもわかり易かったです。

これからやりたいこと

今のところは以下の機能を自分のためにアップデートしていきたいです。

  • 特定のワードが含まれていた場合の返信用メッセージの作成
  • テキスト以外のタイプのメッセージ作成

さいごに

npmパッケージ作成は思ったより楽でした。自分のライブラリをnpmjsが管理してくれるのでほしいときにすぐに取ってこれますね!