Ich benutze Microsoft Bot Framework FormFlow, um einen Benutzer zum Ausfüllen eines Formulars zu erhalten. Nachdem sie abgeschlossen, dass Dialog beendet und das Verfahren für den ResumeWith
Parameter angegeben (in diesem Fall quoteComplete
) ausgeführt wird:Wie gebe ich eine verzögerte Antwort in Microsoft Bot Framework
var quoteForm = new FormDialog<Quote>(new Quote(),
quoteFormBuilder.BuildForm, FormOptions.PromptInStart);
context.Call<Quote>(quoteForm, quoteComplete);
In quoteComplete
ich den Bot möchte den Benutzer sagen, dass es sich um ein Angebot bekommen und es kann dauert ein paar Sekunden. Ein asynchroner Aufruf das Zitat ausführen wird dann getan und auf seine Rückkehr möchte ich den bot eine weitere Nachricht mit dem Wert des Zitats zeigen:
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");
});
Ich habe auch versucht, in der Dokumentation folgende Ratschläge für mehrere Antworten zu senden, indem sie dies im Delay().ContinueWith
:
var message = context.MakeMessage();
message.Text = "Your quote is for £133.54";
var connector = new ConnectorClient();
connector.Messages.SendMessage(message);
aber ich erhalte eine Access Denied
Fehler für diese.
Haben Sie das jemals gelöst? –
Ich fürchte nicht - immer noch hoffen, dass jemand mit einer Antwort einspringen wird! :( –