Bot Framework с QnaMaker и FormFlow - PullRequest
0 голосов
/ 07 января 2019

Я создаю бота, который общается с QnaMaker, и, в зависимости от ответа, с помощью Json следует открыть управляемый диалог через FormFlow. Моя проблема именно на этом этапе, чтобы открыть форму. Я использую SDK V3 и QnAMakerDialog от garypretty

Я пробовал несколько вещей, таких как вызов контекста. Вперед или контекст. Звоните, но не правильно, возможно, я звоню не так.

Всегда возвращает сообщение о том, что в исходном коде есть проблема.

public override async Task DefaultMatchHandler(IDialogContext context, 
string originalQueryText, QnAMakerResult result)
{
    QnaAnswer a = result.Answers.First();
    var messageActivity = ProcessResultAndCreateMessageActivity(context, ref result);

    if (a.Answer == "form")
    {
       // OPEN FORM HERE
    }

    await context.PostAsync(messageActivity);
   context.Wait(MessageReceived);
}

1 Ответ

0 голосов
/ 09 января 2019

Решение:

public static bool IsForm = false;

 public override async Task DefaultMatchHandler(IDialogContext context, 
 string originalQueryText, QnAMakerResult result)
 {
     QnaAnswer a = result.Answers.First();
     var messageActivity = ProcessResultAndCreateMessageActivity(context, ref result);

     if (a.Answer == "form")
     {
         IsForm = true;
         var form = new FormDialog<JObject>(new JObject(), JsonForm.BuildJsonForm, FormOptions.PromptInStart);
         context.Call(form, FormCallback);
     }
     else
     {
          IsForm = false;
          messageActivity.Text = $"{result.Answers.First().Answer}";
     }

     if (IsForm == false)
     {
         await context.PostAsync(messageActivity);
         context.Wait(MessageReceived);
     }
 }

Спасибо, Кайл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...