主动式机器人触发瀑布

时间:2019-10-31 07:56:23

标签: c# botframework microsoft-teams azure-bot-service

我开发了一种机器人,该机器人可以帮助用户预订会议室,并且仅在“团队”频道中可供1对1对话使用。我已经开发了瀑布对话框来收集数据(首选房间,楼层,参与者人数,日期,时间等)。它工作得很好。但是,现在我想添加一项新功能,该功能是在特定会议室免费后(如果不是在进行预订时,它会在空前)主动通知用户。我已经添加了第二个终结点“ api / notify”(根据官方的主动机器人示例),该端点接收了Webhook,并使用连接器向用户发送主动消息,例如“现在会议室1是免费的,您要编辑原始约会位置吗?”。在这里,我对设计和进一步开发存在一些疑问:

  1. 一旦用户收到主动通知并回答“是”,我想调用新的瀑布以让用户更改预订。我不确定什么是正确的方法,以及如何“触发” EditReservationWaterfall对话框,因为简单的“是”似乎并不是被打断的正确触发。我是否应该将有关正在发送的主动消息的信息存储在Cosmos DB / Blob容器中,并将其作为条件与“是”中断结合在一起(并检查是否有任何活动对话框作为第三种条件)。还是有办法直接从“ api / notify”端点触发瀑布?也许有一种方法可以通过某种方式将“ api / notify”请求传递给主要的bot .cs?还是其他想法?

  2. 当用户进行新预订并且在此过程中,“ api / notify”接收到发布请求时,如何处理方案。如何防止“ api / notify”代码不打断当前瀑布?我能以某种方式检查是否有来自“ api / notify”端点的活动对话框,并可能以不成功的状态代码响应webhook,以便webhook会在一段时间后再次发送请求。还是有其他聪明的方法?

请注意,webhook逻辑在此处是单独的,将根据要求进行配置。

0 个答案:

没有答案