【发布时间】:2019-01-07 11:01:13
【问题描述】:
我正在制作一个与 QnaMaker 通信的机器人,根据答案,应该使用 Json 打开通过 FormFlow 的引导式对话。 我的问题正是在这一点上才能打开表格。 我正在使用 garypretty 的 SDK V3 和 QnAMakerDialog
我尝试了几种方法,例如调用 context.Forward 或 context.Call,但不正确,可能我调用的方式错误。
总是返回说明源代码有问题的消息。
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);
}
【问题讨论】:
-
您能否更具体地说明源代码中遇到了什么问题?尝试在调试模式下运行它并设置断点。我怀疑问题是您正在调用 context.Forward(),然后是 context.Wait()。你每回合只能调用其中一个,任何额外的调用都会引发“无效需要”异常。
-
另外,请发布您用来打开表单对话框的代码
-
嗨,你是对的,我调用的是 context.Forward(),然后是 context.Wait()。我纠正了这个问题,问题就解决了。非常感谢。
-
您想发布自己的答案还是希望我将其发布为答案?
-
好的.. @KyleDelaney
标签: c# botframework qnamaker formflow