用户可以在不同的渠道(Facebook messenger 或 Skype)上恢复聊天吗?会话不应该丢失的地方
Posted
技术标签:
【中文标题】用户可以在不同的渠道(Facebook messenger 或 Skype)上恢复聊天吗?会话不应该丢失的地方【英文标题】:Can a User resume the chat on different channels(Facebook messenger or Skype) ? where the session should not be lost 【发布时间】:2017-12-05 06:16:00 【问题描述】:我想通过加入 Facebook Messenger、Alexa、Native 应用程序、网络聊天等多个渠道来制作一个机器人,以获得无缝且无摩擦的体验。
用户应该能够在应用程序内打开和启动聊天会话并关闭它但不会丢失会话,这样我就可以轻松地从应用程序内发起与机器人或代理的聊天会话。
例如如果我是在 Facebook Messenger bot 上聊天的用户,一段时间后我关闭它并在网页上打开聊天机器人,那么我应该能够在该频道上恢复相同的聊天表示用户的聊天会话不应丢失。
【问题讨论】:
您必须在后端记录会话并结合所有集成的帐户链接,这绝对可以通过几个编码之夜。 嗨,还有更新吗?期待您的消息。 【参考方案1】:首先,机器人应用程序连接到多个渠道,每个渠道都有不同的用户。正如@christophe-willemsen 所说,您需要建立自己的帐户系统并链接到您的机器人连接的所有渠道。使用它,您需要将会话数据与用户配对。
然后,您可以利用Manage state data 来存储和访问用户数据。并利用Advance the waterfall 管理对话框内的瀑布步骤。
快速参考:
let savedSession;
var bot = new builder.UniversalBot(connector, [(session) =>
if (savedSession)
var [savedDialog] = savedSession.dialogStack().slice(-2, -1);
console.log(savedDialog);
session.replaceDialog(savedDialog.id, savedDialog.state)
else
savedSession = session;
session.beginDialog('form');
]);
bot.dialog('form', [...waterfall steps...])
【讨论】:
以上是关于用户可以在不同的渠道(Facebook messenger 或 Skype)上恢复聊天吗?会话不应该丢失的地方的主要内容,如果未能解决你的问题,请参考以下文章