今のところ自分用。
ラインBotを簡単に使えるLine.jsです。
参考:http://qiita.com/n0bisuke/items/56d7ace2193fbc106639
・X-Line-Signatureでバリデートしてくれます。(うれしい)
・依存ライブラリが無い!(いいぞ)
・簡単!(おおー)
おうむ返しするコードです。
const LineConnector = require('./line').Connector;
const line = new LineConnector(
"XXXXXX", //シークレット
"XXXXXX", //アクセストークン
3000 //自分のwebhockのサーバーのポート
);
//メッセージが来た時。
line.on('message', (message, replyToken) => {
//語尾に"\nfrom nodejs"を追加しておうむ返し。
message.text += "\nfrom nodejs.";
line.reply(replyToken, [message]);
});
とても簡単です!
1人に対してメッセージを送ります。
line.push(送り先, [メッセージオブジェクト,...]);
複数人に対してメッセージを送ります。
line.multicast([送り先,...], [メッセージオブジェクト,...]);
リプライトークンを使ってリプライを送ります。
line.reply(リプライトークン, [メッセージオブジェクト,...]);
データを送れます。
line.send(APIのpath, 送るデータ)
まだ上の3つしかメソッドがないので、それ以外の方法で送りたい場合はapi pathとデータを使えば送れます。
上の3メソッドはこのsendメソッドを使って実装されます。
解説が下手なのでソースを見てください!読めると思います。
何かをラインから受け取ったらまず一番目に呼ばれます。
↓ページの右側のjsonがオブジェクトとして渡って来ます。
https://devdocs.line.me/ja/#webhooks
例えば上のサンプルをdataイベントを使って書くとこうなります。
line.on('data', (d) => {
if (d.events) {
d.events.forEach((event) => {
if(e.type === 'message') {
//語尾に"\nfrom nodejs"を追加しておうむ返し。
e.message.text += "\nfrom nodejs.";
line.reply(e.replyToken, [e.message]);
}
});
}
});
2番目以降に呼ばれます。
dataイベントのdata.eventsをforEachしてeventごとに呼んでいます。
データ構造は↓を参考に。
https://devdocs.line.me/ja/#webhook-event-object
例えば上のサンプルをeventイベントを使って書くとこうなります。
line.on('event', (e) => {
if(e.type === 'message') {
//語尾に"\nfrom nodejs"を追加しておうむ返し。
e.message.text += "\nfrom nodejs.";
line.reply(e.replyToken, [e.message]);
}
});
メッセージが来たら呼ばれます。
使いやすいかなと思い、メッセージ、リプライトークン、データ本体を渡しています。
サンプルでも使っています。
line.on('message', (message, replyToken) => {
//語尾に"\nfrom nodejs"を追加しておうむ返し。
message.text += "\nfrom nodejs.";
line.reply(replyToken, [message]);
});