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

  • 67
    いいね
  • 0
    コメント

追記(16/10/25):ライブラリ自体は Messaging API に書き換えましたが,記事は古いままです.
詳しい使い方は https://3846masa.github.io/node-linebot/ を見てください

LINE Bot APIが公開になりました.
とりあえずライブラリ作ったので晒しておきます.

NPM
Github

使い方

適当なサーバ,ドメイン,SSL環境などを用意します.
SSLは,CloudflareのSSLを使ってやりました.
(Proxy IPが変わる可能性もあるので,常用はできなそうですが....)
その辺の話は,こちらの記事とか見ると良さそうです.

LINE Bot APIのサイト側設定については,ここでは省きます.
IP Whitelistの設定,Callback URLの設定は,他の記事を参照してください.

インストール

npm install --save @3846masa/linebot

ちなみに,ぼくはメンテナンスしなさそうなので,名前空けときました.
誰かちゃんとメンテナンスする人,もっといいライブラリ作ってください.

コード

古い内容です.新しい使い方は https://3846masa.github.io/node-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が作れるようになると,楽しいですよね,きっと.

広告

広告
Nakano Computer Club では する部員を募集しています。
https://meiji-ncc.tech/