FormFlow和建议的行动

时间:2017-05-17 12:41:15

标签: c# botframework 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;
    }

1 个答案:

答案 0 :(得分:1)

如果您需要此功能,则必须坚持实施。 Formflow尝试尽可能抽象,并将枚举选项显示为带按钮的Herocard,这就是结果。这样做是因为几乎所有频道都支持Herocards,只有facebook支持快速回复。