FormFlow 和建议的操作
FormFlow and suggested action
我正在使用带有枚举的 FormFlow 来呈现一些问题,但似乎 formflow 将它们呈现为带有按钮的 HeroCard,我希望提示呈现为建议的操作,以便在 FB 中显示为快速回复,什么会是最好的方法吗?
现在,我按如下方式实现了自定义提示器,但想知道是否有更好的方法使用属性来执行此操作,因此我不需要编写自定义代码。
private static async Task<FormPrompt> Prompter(IDialogContext context, FormPrompt prompt, JObject state, IField<JObject> field)
{
IMessageActivity promptMessage;
// Handle buttons as quick replies when possible (FB only renders 11 quick replies)
if (prompt.Buttons.Count > 0 && prompt.Buttons.Count <= 11)
{
// Build a standard prompt with suggested actions.
promptMessage = context.MakeMessage();
promptMessage.Text = prompt.Prompt;
var actions = prompt.Buttons.Select(button => new CardAction
{
Type = ActionTypes.ImBack,
Title = button.Description,
Value = button.Description
})
.ToList();
promptMessage.SuggestedActions = new SuggestedActions(actions: actions);
}
else
{
promptMessage = await Extensions.GetDefaultPrompter(context, prompt);
}
await context.PostAsync(promptMessage);
return prompt;
}
如果您想要此功能,则必须坚持执行。 Formflow 试图尽可能地抽象,将枚举选项呈现为带有按钮的 Herocard 正是其结果。之所以这样做,是因为几乎所有频道都支持 Herocards,只有 facebook 支持快速回复。
我正在使用带有枚举的 FormFlow 来呈现一些问题,但似乎 formflow 将它们呈现为带有按钮的 HeroCard,我希望提示呈现为建议的操作,以便在 FB 中显示为快速回复,什么会是最好的方法吗? 现在,我按如下方式实现了自定义提示器,但想知道是否有更好的方法使用属性来执行此操作,因此我不需要编写自定义代码。
private static async Task<FormPrompt> Prompter(IDialogContext context, FormPrompt prompt, JObject state, IField<JObject> field)
{
IMessageActivity promptMessage;
// Handle buttons as quick replies when possible (FB only renders 11 quick replies)
if (prompt.Buttons.Count > 0 && prompt.Buttons.Count <= 11)
{
// Build a standard prompt with suggested actions.
promptMessage = context.MakeMessage();
promptMessage.Text = prompt.Prompt;
var actions = prompt.Buttons.Select(button => new CardAction
{
Type = ActionTypes.ImBack,
Title = button.Description,
Value = button.Description
})
.ToList();
promptMessage.SuggestedActions = new SuggestedActions(actions: actions);
}
else
{
promptMessage = await Extensions.GetDefaultPrompter(context, prompt);
}
await context.PostAsync(promptMessage);
return prompt;
}
如果您想要此功能,则必须坚持执行。 Formflow 试图尽可能地抽象,将枚举选项呈现为带有按钮的 Herocard 正是其结果。之所以这样做,是因为几乎所有频道都支持 Herocards,只有 facebook 支持快速回复。