Как отправить проактивный диалог с Bot Framework - PullRequest
0 голосов
/ 10 июля 2019

Я хочу начать диалог с BotBuilder в C #.Упреждающее сообщение работает нормально, но я хочу начать диалог.Они могли бы сделать это с помощью dialogSet внутри моего класса Bot, но в этом случае я нахожусь в другом классе, выполняющем обратный вызов, и не имею доступа к dialogSet.Какой правильный подход для этого?

1 Ответ

1 голос
/ 11 июля 2019

Я только что нашел, в чем проблема.Я решил это следующим образом:

  1. Создание набора диалогов в классе, где я обрабатываю проактивный триггер.Для этого я добавляю средство доступа DialogState
  2. Добавлен только тот диалог, который мне нужен для запуска, я предполагаю, что он должен совпадать с тем, который есть в диалоге Bots.Мне нужно реорганизовать это так, чтобы я получил диалог из одного и того же места и в этом классе, и в боте, чтобы у меня не было дублированного кода.
  3. Получите контекст dialogSet и начните диалог.
  4. Очень важно .... Сохраните изменения DialogState, если ответ не будет обработан неправильно.

var _dialogSet = new DialogSet (accessors.DialogStateAccessor);

    _dialogSet.Add(new CrazyDialog("CrazyDialog"));

    DialogContext dc = await _dialogSet.CreateContextAsync(turnContext, cancellationToken);

    await dc.BeginDialogAsync("CrazyDialog", cancellationToken);

    await accessors.ConversationState.SaveChangesAsync(turnContext, false, cancellationToken);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...