botbuilder-formflow
Version:
Form flow with subdialogs
58 lines (51 loc) • 1.44 kB
JavaScript
const builder = require('botbuilder');
const restify = require('restify');
const formFlow = require('botbuilder-formflow');
// Let's setup a menu with submenu
let form = [
{
"type": "menu-dialog",
"prompt": "What do you want to do?",
"items": {
// Action A will lead to dialog "/action0"
"Action A": "/action0",
// Dialog for Action B will be autogenerated
"Action B": function (session) {
session.endDialog('Action B says hello')
},
// More action contain submenu
"More": {
"type": "menu-dialog",
"prompt": "SubMenu items",
"items": {
'submenu 0': '/submenu0',
'submenu 1': '/submenu1'
}
}
}
}
];
// Connector for you bot
let connector = new builder.ChatConnector({
appId: '',
appPassword: ''
});
// Bot and his dialogs
let bot = new builder.UniversalBot(connector);
bot.dialog('/action0', function (session) {
session.endConversation('Hello from Action 0!')
});
bot.dialog('/submenu0', function (session) {
session.endConversation('Hello from Submenu 0!')
});
bot.dialog('/submenu1', function (session) {
session.endConversation('Hello from Submenu 1!')
});
// Setup formflow
formFlow.create(bot, '/', form);
// Setup HTTP Server
const server = restify.createServer();
// Expose REST Endpoint
server.post('/api/messages', bot.connector().listen());
// Listen to 3978 port
server.listen(3978);