如何解决将变量从Webchat客户端传递到bot框架
我需要将ID从Webchat客户端传递到机器人。我做了研究,发现了stackoverflow post,其中@ justin-harris提到了以下代码
const originalDirectline = props.webchat.createDirectLine({
token,})
const directLine = Object.assign({},originalDirectline,{
postActivity: (activity: any) => {
const newActivity = Object.assign({},activity)
newActivity.customParam = "custom value"
return originalDirectline.postActivity(newActivity)
}
})
从某种意义上讲,它可以正常工作,并且我可以在我的机器人中接收ID,但是每当我以用户身份从网聊客户端发送消息时,它都会出现两次(第一条消息失败,第二条消息成功)。我不确定为什么要这么做。如果有人对这个问题有所了解,我们将不胜感激。
解决方法
没关系,我通过商店初始化期间可以通过的中间件弄清楚了。这是任何未来灵魂的解决方案:
const store = useMemo(
() =>
createStore({},({ dispatch }) => (next) => (action) => {
if (action.type === "DIRECT_LINE/POST_ACTIVITY") {
action = simpleUpdateIn(
action,["payload","activity","channelData","yourVariableHere"],() => "Your data here"
);
}
return next(action);
}),[]
);
我正在使用名为simple-update-in的程序包来修改对象。您应该可以通过action.payload.activity.channelData
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。