У меня есть MS bot v4 в node js и настроенные каналы Facebook и прямые линии. все работает нормально на канале Facebook, но прямой канал не может очистить диалог, который вызывается действиями предложения.
шаг # 1: когда я нажимаю на действие предложения, тогда его действие обрабатывается очень хорошо.
шаг # 2: когда я набираю некоторое высказывание (например, "Привет"), бот выполняет предыдущий диалог, который активируется на шаге № 1.
как очистить / остановить диалог шага № 1 после его завершения.
Ниже приведен фрагмент кода:
ниже кода, используемого для отправки действия предложения пользователю.
var msg = MessageFactory.suggestedActions(
CardFactory.actions([
{
type: 'messageBack',
title: 'title',
value: 'XYZDialog'
}
]), 'Click'
);
await stepContext.context.sendActivity(msg);
ниже события onMessage кода для обнаружения диалогового окна
this.onMessage(async (context, next) => {
if (context._activity.hasOwnProperty('value')) {
this.dialog.initialDialogId = 'XYZDialog';
}
await this.dialog.run(context, this.dialogState);
await next();
});
под кодом для запуска над обнаруженным диалоговым окном.
async run(turnContext, accessor) {
const dialogSet = new DialogSet(accessor);
dialogSet.add(this);
const dialogContext = await dialogSet.createContext(turnContext);
const results = await dialogContext.continueDialog();
if (results.status === DialogTurnStatus.empty) {
await dialogContext.beginDialog(this.id);
}
}
Пожалуйста, дайте мне знать, как я могу решить эту проблему. Дайте мне знать, если вам нужна дополнительная информация.