我在网络聊天和网络聊天中使用Microsoft Bot Framework。 FB Messenger平台。
我想知道是否有任何简单的方法来保存并向用户显示他的聊天记录,即使页面已重新加载,或者用户离开页面并在一段时间后回来..
因为现在,使用IFRAME方法,每次重新加载页面时,它都会与机器人开启新的会话..
我想到在我的后端创建新的api以获取用户聊天记录,但这听起来不是明智之举..
感谢您的帮助!
答案 0 :(得分:1)
Bot Framework还为我们提供了一个名为Bot Framework State service的强大服务,使您的机器人能够存储和检索与特定对话环境中的用户,对话或特定用户相关联的状态数据。
所以我们使用的最简单的解决方案是这样的:
答案 1 :(得分:0)
我们将聊天记录保留为directline JS功能。
每个对话都有自己的ID。坚持对话Id。将持久对话ID传递给聊天组件初始化,聊天初始化为历史记录。
Bot连接初始化。 getPersistedConversationId
从Cookie中读取conversationId
const botConnection = new BotChat.DirectLine({
secret: "directline secret",
webSocket: false,
conversationId: getPersistedConversationId()
});
使用连接初始化网络聊天组件
BotChat.App({
botConnection: botConnection,
user: { id: "userid", name: "username",},
},
window.document.getElementById('chat'));
订阅连接状态更改。打开连接时 - 保持会话ID。 saveConversationId
将会话ID保存到Cookie中
botConnection.connectionStatus$
.subscribe(function (connectionStatus){
switch(connectionStatus){
case 2:
saveConversationId(botConnection.conversationId);
}
});