【问题标题】:Bot Framework Read UserState data outside of dialog or resume to conversation dialogBot Framework 在对话之外读取 UserState 数据或恢复对话对话
【发布时间】:2021-02-24 17:31:10
【问题描述】:

我有一个 PizzaBot。获得订单后,我将数据保存到 UserState。之后,用户获得一个按钮(ActionTypes.OpenUrl)以在不同的系统上支付订单。到目前为止一切正常。

但是,当支付服务调用我的 api 时,我无法再获取 UserState 数据。我已尝试发送主动通知,正在显示“您已成功支付”消息,但我无法检索用户数据。

我得到了我的对话 ID 对话参考,但我不知道我应该在 BotCallback 中调用什么来恢复对话。

foreach (var conversationReference in _conversationReferences.Values)
{
    await ((BotAdapter)_adapter).ContinueConversationAsync(_appId, conversationReference, BotCallback, default);
}

你有什么例子吗?

【问题讨论】:

标签: c# botframework


【解决方案1】:

感谢 George,我已经解决了这个问题。

在 UserState 文档页面上是这样写的:

用户状态在机器人与之交谈的任何时候都可用 该频道上的该用户,无论对话如何。

这意味着如果我的 NotificationController 被调用,UserState 就在某处。 因此,我在 BotCallback 上创建了一个带有选项的主动 MainDialog:请参阅:Starting A Dialog From From A Proactive Message 并在选项已填充且来自我的 NotificationController 时读取 UserState 数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 2022-11-10
    • 2016-09-04
    • 2017-04-27
    • 2016-10-30
    • 2016-11-08
    • 2019-10-16
    相关资源
    最近更新 更多