动态链接机器人框架中的一个或多个对话框

Chaining one or more dialogs in bot framework dynamically

我有一个对话,用户可以在其中输入表单。在他们可以输入表单之前,他们需要进行身份验证,然后可能在身份验证之后,他们可能需要在调用目标表单之前回答更多问题。

假设我有 3 个对话框 A、B 和 C。目的是显示 C,但我们可能需要先显示 A,可能还需要先显示 B。

如何巧妙地创建一条满足所有场景(仅C、A和C以及A​​、B和C等)的链?

你不需要链条。您将 C 设置为根对话框。您可以在其中添加逻辑来检查例如它是否已通过身份验证。如果不是,则将消息 FWD 到 A 对话框。

您应该从 A 对话框返回到 C,C 应该决定是否转到 B。

AzureBot sample, they are doing something pretty similar here。您会看到他们正在尝试检索授权令牌;如果令牌不存在,他们会将消息转发给负责处理身份验证的对话框。

如果您不知道如何 call/fwd 对话,请阅读