【问题标题】:how to restart a connection to the bot using sdk v4 for node js如何使用 sdk v4 for node js 重新启动与机器人的连接
【发布时间】:2019-05-19 13:43:48
【问题描述】:

我正在为节点 js 使用 sdk v4 开发一个机器人,我想在用户单击按钮时结束当前对话并开始新的对话。我尝试await this.conversationState.clear(turnContext) 清除对话数据,但对话 ID 没有变化。请建议如何触发对话更新活动以重新启动与机器人的连接。

【问题讨论】:

  • 请问您希望完成什么或期望发生什么?您希望从 UI 中删除频道的聊天记录吗?你想重置机器人的对话数据吗?您只是想生成一个新的对话 ID 吗?您能否通过清除对话框堆栈并开始一个新对话框来实现您的目标,就好像用户正在开始一个新对话一样?
  • 你还在做这个吗?
  • @KyleDelaney 我正在尝试在机器人框架模拟器中实现“重新启动对话”等功能,其中聊天历史记录将被删除并生成新的对话 ID。我可以删除 UI 中的聊天记录。当用户单击 bot.js 中的按钮并且我没有在我的机器人中使用 botbuilder-dialogs 时,我想生成新的对话 ID。
  • 删除用户界面中的聊天记录是频道的能力,而不是机器人。你为哪个频道制作机器人?我认为这只能在网络聊天或您自己的自定义 Direct Line 客户端中实现。
  • @KyleDelaney 我正在使用 Direct Line。

标签: node.js botframework direct-line-botframework


【解决方案1】:

机器人模拟器和 Azure 门户网络聊天都包含一种重新启动按钮,用于清除对话历史记录并生成新的对话 ID。这是通过刷新网络聊天来完成的。

每次将密钥交换为令牌时,Direct Line 都会生成一个新的对话 ID。如果您将 Direct Line secret 直接传递给 Web Chat 并让 Web Chat 将其交换为令牌,则生成新对话 ID 所要做的就是refresh the page or frame

如果您将秘密存储在私密位置(推荐)并自己将其交换为令牌并将令牌传递给网络聊天,那么只需再次执行此操作以生成新的对话 ID。 p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多