我正在使用Azure功能将主动消息发送到客户端。发送主动消息后,如何“重置”对话。
在机器人内部,可能会提示用户输入某些内容(例如一天中的时间)。在他们做出响应之前,可能会向他们发送一条主动消息。在这种情况下,我想重置/取消上一个对话框并重新开始。
我已经可以使用CancelAllDialogsAsync重置对话框,该对话框对于用户驱动的消息非常有效。
我正在使用ConnectorClient发送主动消息,它绕过了框架,并直接发送到客户端,因此从不打我的中间件来重置对话框。
如何将主动消息发送到框架(我可以毫无问题地从bot发送响应)
答案 0 :(得分:1)
我强烈建议您通过在override func initialLayoutAttributesForAppearingItem(at itemIndexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
let attributes = super.initialLayoutAttributesForAppearingItem(at: itemIndexPath)
if insertingIndexPaths.contains(itemIndexPath) {
attributes?.alpha = 0.0
attributes?.transform = CGAffineTransform(
translationX: 0,
y: 500
)
}
return attributes
}
的上下文中通过ConversationReference
向bot发送bot反向事件来解决此问题。这样,机器人就可以维护状态的所有详细信息以及该事件发生时应该发生的情况的所有权,而不是该责任泄漏给功能。然后,该漫游器会监视此自定义事件并对其进行响应,但它认为合适。
如果您需要更多详细信息,请告诉我,我将更新答案。