65
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-04-09

追記(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試したかったので,頑張って書きました

postXXXXのような関数で,色々送信できます.
これで,簡単なbotであればすぐ作れますね.

余談

未だにLINE Botをうまくデプロイする方法が思いついてないのですが,いい案誰か考案してください.
誰でも簡単にbotが作れるようになると,楽しいですよね,きっと.

広告

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

65
61
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?