Created
October 14, 2019 10:39
-
-
Save derchrisuk/765eb2ae14dc3806c1d4c47298592cf1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// __ __ ___ ___ | |
// |__) / \ | |__/ | | | |
// |__) \__/ | | \ | | | |
// This is the main file for the grumpy-dev bot. | |
// Import Botkit's core features | |
const { Botkit } = require('botkit'); | |
const { BotkitCMSHelper } = require('botkit-plugin-cms'); | |
// Import a platform-specific adapter for webex. | |
const { WebexAdapter } = require('botbuilder-adapter-webex'); | |
const { MongoDbStorage } = require('botbuilder-storage-mongodb'); | |
// Load process.env values from .env file | |
require('dotenv').config(); | |
let storage = null; | |
if (process.env.MONGO_URI) { | |
storage = mongoStorage = new MongoDbStorage({ | |
url : process.env.MONGO_URI, | |
}); | |
} | |
const adapter = new WebexAdapter({ | |
// REMOVE THIS OPTION AFTER YOU HAVE CONFIGURED YOUR APP! | |
enable_incomplete: true, | |
access_token: process.env.access_token, | |
public_address: process.env.public_address, | |
//secret: process.env.secret, | |
webhook_name: 'grumpy-dev' | |
}) | |
const controller = new Botkit({ | |
webhook_uri: '/api/messages', | |
adapter: adapter, | |
storage | |
}); | |
let PORT = 3000; | |
// Spark Websocket Intialization | |
const SparkWebSocket = require('./libs/SparkWebSocket.js'); | |
//var SparkWebSocket = require('ciscospark-websocket-events'); | |
sparkwebsocket = new SparkWebSocket(process.env.access_token); | |
sparkwebsocket.connect(function (err, res) { | |
if (!err) { | |
sparkwebsocket.setWebHookURL("http://localhost:" + PORT + "/api/messages"); | |
} | |
else { | |
console.log("Error starting up websocket: " + err); | |
} | |
}); | |
if (process.env.cms_uri) { | |
controller.usePlugin(new BotkitCMSHelper({ | |
uri: process.env.cms_uri, | |
token: process.env.cms_token, | |
})); | |
} | |
// Once the bot has booted up its internal services, you can use them to do stuff. | |
controller.ready(() => { | |
// load traditional developer-created local custom feature modules | |
controller.loadModules(__dirname + '/features'); | |
/* catch-all that uses the CMS to trigger dialogs */ | |
if (controller.plugins.cms) { | |
controller.on('message,direct_message', async (bot, message) => { | |
let results = false; | |
results = await controller.plugins.cms.testTrigger(bot, message); | |
if (results !== false) { | |
// do not continue middleware! | |
return false; | |
} | |
}); | |
} | |
}); | |
//controller.ready(async function () { | |
// await controller.adapter.registerAdaptiveCardWebhookSubscription('/api/messages'); | |
//}); | |
controller.webserver.get('/', (req, res) => { | |
res.send(`This app is running Botkit ${ controller.version }.`); | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment