Ich bin neu in der Programmierung von Facebook-Bots. Ich benutze Microsoft Bot Framework in C#.So rufen Sie Formflow durch Klicken auf eine Schaltfläche im Bot-Framework C#
Ich möchte einen Dialog oder einen Formularfluss starten, wenn der Benutzer eine Auswahl aus einer schnellen Antwort auswählt.
Als ich dies versuchen, mit diesem Code nicht, dass ich nichts als responde bekommen ... oder ich habe Fehler
In meinem Rootdialog.cs diesen Code im mit:
private async Task OnOptionSelected(IDialogContext context, IAwaitable<IMessageActivity> result)
{
var message = await result;
//if you choose start parking
if (message.Text == Resources.RootDialog_Welcome_Start)
{
this.order = new Models.Order();
var promptOptions = new PromptOptions<string>(
"Please select the city where you want to park:",
options: new[] { "a", "b", "c" },
promptStyler: new());
PromptDialog.Choice(context, this.ResumeAfterSelection, promptOptions);
}
private async Task ResumeAfterSelection(IDialogContext context, IAwaitable<string> result)
{
try
{
var cityRange = await result;
if (cityRange == "Brussels")
{
context.Call(FormDialog.FromForm<Enquiry>(Enquiry.BuildEnquiryForm, FormOptions.PromptInStart), async (ctx, formResult) => ctx.Wait(this.MessageReceivedAsync));
//var myform = new FormDialog<Enquiry>(new Enquiry(), Enquiry.BuildEnquiryForm, FormOptions.PromptInStart, null);
Enquiry.cs ist
[Serializable]
public class Enquiry : LuisDialog<StartParking>
{
private Func<IForm<Enquiry>> buildEnquiryForm;
public Enquiry(Func<IForm<Enquiry>> buildEnquiryForm)
{
this.buildEnquiryForm = buildEnquiryForm;
}
public Enquiry()
{
}
[Prompt("What time")]
public DateTime Time { get; set; }
[Prompt("Placenumber?")]
public string PlaceNumber { get; set; }
[Prompt("Platenumber?")]
public string Platenumber { get; set; }
public IEnumerable<EntityRecommendation> Entities { get; internal set; }
public static IForm<Enquiry> BuildEnquiryForm()
{
return new FormBuilder<Enquiry>()
.AddRemainingFields()
.Build();
}
}
}