[英]Running Async functions in Microsoft Bot Builder (with Node.JS)
[英]How can I generate dialogs dynamically using the Microsoft Bot Builder SDK for Node.js?
我正在构建一个工具,该工具允许用户生成自己的自定义表单调查。 我想让他们能够将这些传统的形式调查转换为聊天对话。 我已经在使用Microsoft Bot Builder SDK通过聊天与用户互动。
如何使用数据库中存储的表单结构动态生成对话框? 假设我在数据库中存储了一个像这样的数组:
var form = [
{
inputType: 'text',
prompt: 'What is your first name?'
},
{
inputType: 'choice',
prompt: 'Select your gender',
values: ['female', 'male']
}
];
如何使用此数组生成瀑布对话框? 我知道我可以一直使用提示等方式手动编写对话框代码,如果我一直都知道调查问题是什么,但是我必须基于用户保存的动态表格来生成对话框。 我找不到有关如何实现此目的的任何信息。 感谢帮助。 谢谢。
您可以使用社区贡献的工具“ Form Flow”来完成此任务-它旨在完成与您的想法相似的想法。
您可以在此处找到NPM软件包:
可以在GitHub项目存储库上找到更多详细信息:
概述:
该库将允许您的漫游器向用户请求复杂的表单。 它有助于构建将处理整个表单流程的瀑布对话框。 该库将分为每个字段所需的对话框列表。 您可以使用预定义的提示,也可以围绕MBF提示创建自定义对话框包装。 每个字段的对话框分别评估,可以自定义。 图书馆的特点:
- 标准提示以及有关电子邮件和网址的提示;
- 验证者,提示,错误提示和值提取器可由开发人员定制
- 支持子对话框
示例: 简单的注册表 :
const builder = require('botbuilder');
const formFlow = require('../../botbuilder-formflow');
let signupForm = [
{
"type": "text",
"id": "login",
"prompt": "Please enter your login",
"response": "Your login is %s"
},
{
"type": "text",
"id": "password",
"prompt": "Please enter your password",
"response": "Your password is %s"
}
];
let connector = new builder.ConsoleConnector().listen();
let bot = new builder.UniversalBot(connector);
bot.dialog('/', [
session => session.beginDialog('/form'),
(session, response) => session.endDialog(`Form result: ${JSON.stringify(response.response)}`)
]);
formFlow.create(bot, '/form', signupForm);
console.log('To start registration flow press [[ENTER]]');
另外,除了利用@nilsw所述的npm软件包外,您还可以尝试自己从数据库中的实体构建Adaptive Card json字符串。
字段定义代码段很简单:
{
"type": "TextBlock",
"text": "Your name",
"wrap": true
},
{
"type": "Input.Text",
"id": "myName",
"placeholder": "Last, First"
},
您可以参考http://adaptivecards.io/samples/InputForm.html以获得输入表单示例。
另外,有关字段定义,请参考http://adaptivecards.io/explorer/Input.Choice.html 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.