#node.js #azure #botframework
#node.js #azure #botframework
Вопрос:
У меня есть бот, в корневом диалоговом окне которого отображается запрос на выбор (да / нет), который я хочу показать пользователю при запуске бота. Ниже приведены фрагменты кода для ConversationUpdate и корневого диалога. Проблема здесь в том, что когда пользователь нажимает «Да» или «Нет» в корневом диалоговом окне, то есть в приветственном сообщении, корневое диалоговое окно запускается во второй раз, и оно снова просит пользователя нажать «Да» или «нет». После этого бот продолжает свою обычную работу, но я хочу, чтобы диалоговое окно root запускалось только один раз.
Заранее спасибо
bot.on('conversationUpdate', function (message) {
if (message.membersAdded amp;amp; message.membersAdded.length > 0) {
message.membersAdded.forEach(function (identity) {
if (identity.id === message.address.bot.id) {
bot.beginDialog(message.address, '/');
}
});
}
});
Корневой диалоговый код:
bot.dialog('/', [
function (session) {
builder.Prompts.choice(session,"some text", ["yes", "no"], { listStyle: builder.ListStyle.button });
},
function (session, results) {
if (results.response.entity == "yes"){
session.send("some text");
}
else if (results.response.entity == "no"){
session.send("some text");
}
session.beginDialog('/nextDialog');
}
]);
Ответ №1:
Похоже, это известная проблема https://github.com/Microsoft/BotBuilder/issues/4387
Комментарии:
1. Спасибо @Zhao. Я следил за темой, которой вы поделились, и они упомянули обходной путь по этой ссылке https://github.com/Microsoft/BotBuilder/issues/4245 . Я использовал это обходное решение, и любой мой бот работает должным образом.