我们使用directlineAPI v3.0连接到自定义客户端应用程序。
我们希望根据用户的偏好向每个用户显示不同的消息/自适应卡问候消息。
为我们的目的修改了自定义客户端应用程序。在像网络聊天这样的匿名渠道中,我们如何将用户特定内容(基于用户原始网站)传递给机器人?
我们使用了postactivity事件并将user-id作为事件文本的一部分传递。
然而,由于这些事件的异步性质,我们如何确保在收到postactivity消息后显示bot.on消息,以便显示适当的自适应卡
感谢 作者Srini
答案 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, '/');
}
})