前回のmBaaSとチャットボットを連携させてみように続いて、今回は実際にチャットボットをmBaaSを連携させてみたいと思います。
チャットボットは拙作のmoongift/FBBot-Prototype: Basically facebook bot. The bot send a message same you sent it.を使います。チャットボットの立て方自体は説明を省きますが、Herokuを使うことで無料で立てることができます。Facebook上における処理についてはGetting Started - Messenger Platformを参照してください。
mBaaSのJavaScript SDKを読み込む
まずmBaaSのJavaScript SDKを読み込みます。npmでライブラリを追加します。
npm install ncmb --save
続いてapp.jsを編集します。process.envを使うことでコード中にキーを書かなくて済むようになります。
var NCMB = require('ncmb'); var ncmb = new NCMB(process.env.APPLICATION_KEY, process.env.CLIENT_KEY); var Message = ncmb.DataStore("Message");
今回はHerokuを使っていますので、環境変数を登録します。YOUR_APPLICATION_KEY、YOUR_CLIENT_KEYはそれぞれmBaaSの管理画面で得られるキーと読み替えてください。
heroku config:set APPLICATION_KEY=YOUR_APPLICATION_KEY heroku config:set CLIENT_KEY=YOUR_CLIENT_KEY
データを登録する
後は POST /webhook
の呼び出しに対してデータ登録を行うだけです。今回はデータをすべて登録しています。
var message = new Message; message.set("sender", sender); message.set("event", event); message.save() .then(function(o) { });
これでチャットボットに送られてくるデータをすべて保存できるようになります。コードをHerokuにアップロードして反映してください。そして、後は自由にチャットボットと会話してください。
管理画面で確認する
管理画面でデータストアを見るとMessageクラスが追加されているのが確認できるはずです。データもちゃんと登録されています。
この利点としてはWebサーバで呼ばれるデータ構造が管理画面を使ってゆっくり確認できることでしょう。写真を送信するとURLが送られているのも分かるはずです。画像を解析するといった処理も簡単に作れそうです。
今回はデータをすべて登録するという簡単な処理にmBaaSを使ってみました。他にも幾つかの使い方が考えられますのでぜひmBaaSを使ってチャットボットを便利にしてください。