【发布时间】:2023-03-05 20:14:02
【问题描述】:
我正在使用 Microsoft Bot Framework FormFlow 让用户填写表单。完成后,Dialog 结束并执行为 ResumeWith 参数(在本例中为 quoteComplete)指定的方法:
var quoteForm = new FormDialog<Quote>(new Quote(),
quoteFormBuilder.BuildForm, FormOptions.PromptInStart);
context.Call<Quote>(quoteForm, quoteComplete);
在quoteComplete 中,我希望机器人告诉用户它正在获取报价并且可能需要几秒钟。然后完成执行报价的异步调用,在它返回时,我希望机器人显示另一条带有报价值的消息:
await context.PostAsync("I will now calculate your quote. I won't be long...");
context.Wait(MessageReceived);
//Simulate getting the quote
Task.Delay(5000).ContinueWith(t =>
{
context.PostAsync("Your quote is £133.54");
});
我还尝试按照文档中关于发送多个回复的建议,将其放入Delay().ContinueWith:
var message = context.MakeMessage();
message.Text = "Your quote is for £133.54";
var connector = new ConnectorClient();
connector.Messages.SendMessage(message);
但是我收到了 Access Denied 错误。
【问题讨论】:
-
你解决过这个问题吗?
-
恐怕不会 - 仍然希望有答案的人能参与进来! :(
标签: c# botframework