azure - 将自定义参数从网络聊天控件传递到机器人框架
问题描述
所以,我目前正在使用这个:
<!DOCTYPE html>
<html>
<body>
<div id="webchat"></div>
<script src="https://cdn.botframework.com/botframework-webchat/preview/botchat.js"></script>
<script>
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ secret: 'YOUR_BOT_SECRET_FROM_AZURE_PORTAL' })
}, document.getElementById('webchat'));
</script>
</body>
</html>
它工作正常,但是我有多个用于不同客户端应用程序的 QnA 知识库。所以我想通过“applicationname”的自定义参数来决定我的 BOT 框架(V4)中 OnTurnAsync 方法中的 QNA KB。
我试过了
var d1 = window.WebChat.createDirectLine({ token })
window.WebChat.renderWebChat({
directLine: d1,
styleSet,
postActivity: activity => {
var newActivity = Object.assign({}, activity, {channelData: { "userparam": "test" } });
return dl.postActivity(newActivity);
}
}, document.getElementById('webchat'));
})();
但是机器人中的 Context.Activity.ChannelData 返回 Null
也试过
var d1 = window.WebChat.createDirectLine({ token })
window.WebChat.renderWebChat({
directLine: d1,
user: { id: 'userid', userparam:'test'},
styleSet
}, document.getElementById('webchat'));
})();
仍然 Context.Activity.From.Properties["userparam"] 返回 Null
解决方案
从西伦特一侧
var d1 = window.WebChat.createDirectLine({ token })
window.WebChat.renderWebChat({
directLine: Object.assign({}, d1, {
postActivity: activity => {
var newActivity = Object.assign({}, activity, { channelData: { "param1": "test" } });
return d1.postActivity(newActivity);
}
}),
styleSet,
botAvatarInitials: 'CAB',
userAvatarInitials: 'You'
}, document.getElementById('webchat'));
})();
来自 BOt 框架
var channelObj = turnContext.Activity.ChannelData.ToString();
var channeldata = Newtonsoft.Json.Linq.JObject.Parse(channelObj);
var customdata = channeldata["param1"].ToString();
推荐阅读
- c# - 反序列化 HttpResponseMessage
- python - 为熊猫数据框的单独列(来自特定列范围)的最大值选择相应的列值
- sql - SQL查询完整列而不在Group By中定义它并优化Inner Join
- c# - 算法和数据结构——我解决这些复杂性问题对吗?
- http - nginx 中的几个条件满足
- sql - 从 sql 中的条件中排除某些结果
- tensorflow - 优化 Tensorflow 目标检测模型 V2 Centernet 模型进行评估
- r - 使用 dplyr 总结一个变量并计算另一个依赖于其他变量的平均值
- sharepoint - 是否有 Microsoft Graph API 调用来获取列表的增量/更改?
- javascript - VSCode 和 Vue:意外字符“”