【发布时间】:2018-08-15 10:00:30
【问题描述】:
我有这个代码:
bot.on('conversationUpdate', (message) => {
if (message.membersAdded) {
message.membersAdded.forEach((identity) => {
if (identity.id === message.address.bot.id) {
bot.beginDialog(message.address, 'start');
}
});
}
});
bot.dialog('start', [
(session) => {
var msg = new builder.Message(session);
msg.attachments([
new builder.HeroCard(session)
.title('test')
.buttons([{ title: 'testButton', type: 'imBack', value: 'testButton' }])
]);
builder.Prompts.choice(session, msg, ['testButton']);
},
(session, results) => {
session.send('Reached 2nd function!');
console.dir(results);
var message = results.response.entity;
session.beginDialog('anotherDialog', message);
}
]);
使用 Bot Framework Emulator 可以正常工作。 Bot Framework Emulator Result
但是,通过使用网络聊天(Azure 控制台),它没有达到瀑布步骤中的第二个功能。 Test in Web Chat Result
Bot Framework Emulator 和 Web Chat 的行为有何不同?
我应该在代码中修改什么?
你有什么想法吗?
- Node.js 版本:8.10.0
- Bot Framework 模拟器版本:4.0.15-alpha
【问题讨论】:
-
我可以重现同样的问题,并且在this github issue:“ConversationUpdate 没有发送足够的信息来构造数据包,因此对话状态没有持久化。” i>,这可能会导致问题。
-
你们两个使用的是 BotBuilder SDK v3 还是 v4?
-
另外,让这个功能由根对话框而不是对话更新产生是否可以接受?
标签: node.js botframework