読者です 読者をやめる 読者になる 読者になる

やっぱり戻ってきた 現在ゆったり ブログ移行中です

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が作れるようになると,楽しいですよね,きっと.