Раньше я много работал с BotFramework V3 в node.js, однако BotFramework V4 сильно отличается, и кажется, что я не могу сделать это правильно.
Я уже несколько дней борюсь с началомдиалоговое окно после распознавания намерения Луиса.
Я получаю следующую ошибку:
[onTurnError]: TypeError: context.beginDialog is not a function
Я проверял подобные проблемы в Stackoverflow, ночеткого ответа пока нет.
См. Пример моего бота ниже:
const { ActivityHandler } = require('botbuilder');
const { LuisRecognizer } = require('botbuilder-ai');
const WelcomeCard = require('./resources/welcomeCard.json');
const { CardFactory, ActionTypes, ActivityTypes } = require('botbuilder-core');
const {DatavisualisatieDialog} = require('./Dialogs/DatavisualisatieDialog');
class TestBot extends ActivityHandler {
constructor(luisRecognizer) {
super('TestBot');
this.luisRecognizer = luisRecognizer;
this.onMessage(async (context, next) => {
const luisResult = await this.luisRecognizer.executeLuisQuery(context);
switch (LuisRecognizer.topIntent(luisResult)) {
case 'Datavisualisatie': {
await context.beginDialog(DatavisualisatieDialog);
}
break;
default:
// Catch all for unhandled intents
const didntUnderstandMessageText = `text`;
await context.sendActivity(didntUnderstandMessageText, didntUnderstandMessageText);
}
});
this.onMembersAdded(async (context, next) => {
const membersAdded = context.activity.membersAdded;
for (let cnt = 0; cnt < membersAdded.length; ++cnt) {
if (membersAdded[cnt].id !== context.activity.recipient.id) {
// activation of the welcomecard
const welcomeCard = CardFactory.adaptiveCard(WelcomeCard);
await context.sendActivity({ attachments: [welcomeCard] });
await context.sendActivity('text');
}
}
// By calling next() you ensure that the next BotHandler is run.
await next();
});
}
}
module.exports.TestBot = TestBot;