LINE Bot を作るための Node.js ライブラリを作った話

LINE Bot APIが公開になりました.

とりあえずライブラリ作ったので晒しておきます.

NPM

Github

この記事は Qiitaにも同じものを書いています

使い方

適当なサーバ,ドメインSSL環境などを用意します.

SSLは,CloudflareのSSLを使ってやりました.

(Proxy IPが変わる可能性もあるので,常用はできなそうですが....)

その辺の話は,こちらの記事とか見ると良さそうです.

LINE Bot APIのサイト側設定については,ここでは省きます.

IP Whitelistの設定,Callback URLの設定は,他の記事を参照してください.

インストール

npm install --save @3846masa/linebot

ちなみに,ぼくはメンテナンスしなさそうなので,名前空けときました.

誰かちゃんとメンテナンスする人,もっといいライブラリ作ってください.

コード

テキストのみをechoするbotの例です.

const LineBot = require('@3846masa/linebot');
const bot = new LineBot({
  channelID: 'xxxxxxx',
  channelSecret: 'xxxxxx',
  MID: 'xxxxxx'
});
 
bot.on('message', (res) => {
  const content = res.content;
  if ( content.contentType === LineBot.CONST.CONTENT_TYPE.TEXT ) {
    bot.postText({
      user: content.from,
      message: content.text
    });
  } else {
    bot.postText({
      user: content.from,
      message: 'Not text.'
    });
  }
});
 
bot.listen(3000);

listenのポートは好きに変えてください.

Callback URLのPathは,とくに指定していないので,どのようなURLにしても通ります.

ただし,しっかりSignatureのチェックも書いたので,LINEからのリクエスト以外は弾かれます.

もし,Pathをちゃんと指定したい人は,好きに弄ってください

ドキュメント

ESDoc試したかったので,頑張って書きました

https://3846masa.github.io/node-linebot/

postXXXXのような関数で,色々送信できます.

これで,簡単なbotであればすぐ作れますね.

余談

未だにLINE Botをうまくデプロイする方法が思いついてないのですが,いい案誰か考案してください.

誰でも簡単にbotが作れるようになると,楽しいですよね,きっと.