作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 node.js 和机器人框架还很陌生。我在 json 中创建了一个在我的机器人中运行的表单。但是填写表格后出现错误
/- 警告:IntentDialog - 未找到 null 的意图处理程序
我不确定为什么会这样。我正在使用 .addAttachment 来使用卡片和 session.send(msg) 将表单呈现给用户。但是,在表单完成并提交后,我收到了上述错误消息。下面是正在使用的表单和 node.js 中的代码
var card = {
'contentType': 'application/vnd.microsoft.card.adaptive',
'content': {
'$schema': 'http://adaptivecards.io/schemas/adaptive-card.json',
'type': 'AdaptiveCard',
'version': '1.0',
'body': [
{
'type': 'Container',
'items': [
{
}
]
}
],
'actions': [
// Contact Information Form
{
'type': 'Action.ShowCard',
'title': 'Contact Form',
'card': {
'type': 'AdaptiveCard',
'body': [
{
'type': 'TextBlock',
'text': 'Please enter your name:'
},
{
'type': 'Input.Text',
'id': 'name',
'speak': '<s>Please enter your name</s>',
'placeholder': 'Enter Name',
'style': 'text'
},
{
'type': 'TextBlock',
'text': 'What is your phone number?'
},
{
'type': 'Input.Number',
'id': 'phone',
//'style': 'text'
},
{
'type': 'TextBlock',
'text': 'What is your email address?'
},
{
'type': 'Input.Text',
'id': 'email',
'placeholder': 'Enter Email',
'style': 'text'
}
],
'actions': [
{
'type': 'Action.Submit',
'title': 'Submit',
'data': {
'type': 'submit'
}
}
]
}
},
]
}
};
node.js 中的代码
bot.dialog('Ask for contact info', [
function (session, args) {
if (session.conversationData.amending) {
session.dialogData.nextStep = 'Show summary';
} else {
session.dialogData.nextStep = 'Ask for severity';
}
builder.Prompts.text(session, "Could you please add details of who you’d like us to contact to discuss your bug further?");
var msg = new builder.Message(session)
.addAttachment(card);
session.send(msg);
},
function (session, results) {
session.conversationData.contactInfo = results.response;
session.beginDialog(session.dialogData.nextStep);
}
]);
最佳答案
要接收来自自适应卡片表单的提交,您可以尝试使用以下 waterfall 步骤:
bot.dialog('form', [
(session, args, next) => {
var card = {
...
};
if (session.message && session.message.value) {
// A Card's Submit Action obj was received
next(session.message.value)
} else {
var msg = new builder.Message(session)
.addAttachment(card);
session.send(msg);
}
},
(session, results) => {
session.send(JSON.stringify(results));
}
])
但是,我无法重现问题 WARN: IntentDialog - no intent handler found for null
,你能提供你的 repo 让我看一下你的整个结构,这有利于进一步分析.
关于javascript - 我收到 WARN : IntentDialog - no intent handler found for null when I fill out a form Node. js Bot 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47776923/
我是一名优秀的程序员,十分优秀!