如何在虚拟助手中创建步骤瀑布,其中步骤是在运行时生成的AdaptiveCard?

时间:2019-06-05 01:24:20

标签: c# .net-core botframework adaptive-cards

我需要在运行时生成瀑布式步骤,因为它们基于API响应-甚至可以通过WaterfallDialogWaterfallSteps来实现?

可以使用AdaptiveCard类在运行时创建自适应卡,但是就将这些卡添加到对话框堆栈而言,我可以只在运行时调用AddDialog()并添加瀑布步骤吗?我的API返回JSON以及要显示在对话框中的文本以及它的控件类型-它根据this documentation使用React-JSONSchema和UISchema属性。这是我正在使用的外部API。

对话框的

The documentation专注于静态内容。我可以从一个空的Waterfall开始并使用类似beginDialog的东西,还是必须与CustomDialog实现一起做?

1 个答案:

答案 0 :(得分:1)

我通过使用ComplexDialogBot作为我的机器人工作方式的基础来实现了这一目标。

更具体地说,在上面链接的类中,有两种感兴趣的方法:

  • SelectionStepAsync-向用户显示选择内容
  • LoopStepAsync-处理用户输入并决定当前对话框流是应该移到下一步还是结束。

我用两个步骤(WaterfallStep[]DisplayCardAsync)创建了一个ProcessCardAsync,这与上面的类中的方法类似。就我而言,我收集了所有可能的步骤,以及弄清楚逻辑流程是否满足完成标准的逻辑,这意味着所有繁重的工作都在ProcessCardAsync内部进行。