如何进行自定义conversationupdate - Microsoft bot框架中每个用户的新用户消息传递?

时间:2018-02-07 07:52:47

标签: node.js botframework

我们使用directlineAPI v3.0连接到自定义客户端应用程序。

我们希望根据用户的偏好向每个用户显示不同的消息/自适应卡问候消息。

为我们的目的修改了自定义客户端应用程序。在像网络聊天这样的匿名渠道中,我们如何将用户特定内容(基于用户原始网站)传递给机器人?

我们使用了postactivity事件并将user-id作为事件文本的一部分传递。

然而,由于这些事件的异步性质,我们如何确保在收到postactivity消息后显示bot.on消息,以便显示适当的自适应卡

感谢 作者Srini

1 个答案:

答案 0 :(得分:1)

  

然而,由于这些事件的异步性质,我们如何确保在收到postactivity消息后显示bot.on消息,以便显示适当的自适应卡

您可以参考Use the backchannel mechanism来达到此要求。

在客户端

var botConnection = new BotChat.DirectLine({
        domain: params['domain'],
        secret: '<secrect>',
        webSocket: params['webSocket'] && params['webSocket'] === 'true' // defaults to true
      });
botConnection.postActivity({ type: "event", from: user, name: "ConversationUpdate", value: "" }) .subscribe(id => console.log("Conversation updated"));
BotChat.App({
    botConnection: botConnection,
    bot: bot,
    user: user,
    resize: 'detect'
}, document.getElementById("BotChatGoesHere"));

在服务器端:

bot.on('event',(event)=>{
  console.log(event)
  if(event.name==='ConversationUpdate'){
    bot.beginDialog(event.address, '/');
  }
})