botanalytics-ghome
Version:
Conversational analytics & engagement tool for chatbots
66 lines (48 loc) • 2.28 kB
JavaScript
;
const BotKit = require('botkit');
const BotAnalyticsWatson = require("botanalytics").BotkitMiddlewares.Watson(process.env.BOTANALYTICS_TOKEN, {debug:false});
const facebookController = BotKit.facebookbot({
access_token : process.env.FACEBOOK_PAGE_TOKEN,
verify_token : process.env.FACEBOOK_VERIFY_TOKEN,
debug : true
});
//spawn bot
const facebookBot = facebookController.spawn({});
//create watson middleware
const watsonMiddleware = require('botkit-middleware-watson')({
username : process.env.WATSON_USERNAME,
password : process.env.WATSON_PASSWORD,
workspace_id : process.env.WATSON_WORKSPACE_ID,
version_date: '2017-05-26',
minimum_confidence: 0.50, // (Optional) Default is 0.75
});
facebookController.middleware.receive.use(watsonMiddleware.receive);
facebookController.middleware.receive.use(BotAnalyticsWatson.receive);
facebookController.middleware.send.use(BotAnalyticsWatson.send);
facebookController.setupWebserver(8001, function (err, webserver) {
facebookController.createWebhookEndpoints(facebookController.webserver, facebookBot, function () {
console.log("Bot is online, I guess...");
});
});
/*facebookController.middleware.send.use(function (bot, message, next) {
console.log("______________________________________");
console.log(JSON.stringify(message));
console.log("Bot type '%s'", bot.type);
console.log("______________________________________");
next();
});*/
facebookController.on('facebook_optin', function (bot, message) {
bot.reply(message, "Welcome to no-sense era of human history. You can chat with me but I'm kind of dumb bc of reasons...");
});
facebookController.hears(['.*'], ['message_received'], function(bot, message) {
console.log("______________________________________");
console.log(JSON.stringify(message));
console.log("Bot type '%s'", bot.type);
console.log("______________________________________");
if (message.watsonError) {
bot.reply(message, "I'm sorry, but for technical reasons I can't respond to your message");
} else {
bot.reply(message, message.watsonData.output.text.join('\n')+"addition");
//bot.reply(message, message.watsonData.output.text.join('\n'));
}
});