проблема с каналом Directline с предложением Action в MS bot framework v4 node js - PullRequest
1 голос
/ 02 апреля 2020

У меня есть 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);
    }
} 

Пожалуйста, дайте мне знать, как я могу решить эту проблему. Дайте мне знать, если вам нужна дополнительная информация.

...