我正在将以下值从网站渠道(直线)传递给我的机器人。如何在漫游器中接收这些值?可以请你解释一下吗?
<script>
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ token: '@Model.Token' }),
userID: '@Model.UserId'
}, document.getElementById('webchat'));
</script>
谢谢,塞尔瓦
如果要获取这些值中的任何一个(或其他任何值),则应通过channelData
发送数据。您可以通过网络聊天的store
:
[1] DIRECT_LINE / POST_ACTIVITY-在此示例中,如果发布的活动中还包含文本“发送用户详细信息”(即,按下了显示向用户显示文本的卡片按钮),则[C0 ]和userId
将被附加并作为userDetails
数据点发送。在这种情况下,机器人只会接收到消息(或postBack等)活动。 (样本参考channelData
。)
here
** 2)WEB_CHAT / SEND_EVENT **-在此示例中,再次发布,如果活动中还包含文本“发送用户详细信息”,则将同时产生并发送一个单独的事件活动,该活动同时包含[C0 ]和<script src="https://unpkg.com/simple-update-in/dist/simple-update-in.production.min.js"></script>
const store = window.WebChat.createStore( {}, ( { dispatch } ) => next => async action => {
if (action.type === 'DIRECT_LINE/POST_ACTIVITY') {
if(action.payload.activity && action.payload.activity.text) {
let text = action.payload.activity.text.toLowerCase();
if(text === 'send user details') {
const userId = 'xyz789';
const userDetails = { 'name': 'Bob', 'age': 35, 'features': { 'eyes': 'brown', 'hair': 'blonde' }};
action = window.simpleUpdateIn(
action,
['payload', 'activity', 'channelData'],
() => ({
'userId': userId,
'userDetails': userDetails
})
)
}
}
}
return next( action );
} );
作为userId
数据点。在这种情况下,漫游器会接收两个活动:消息(或postBack等)活动和事件活动。 (样本参考userDetails
。)
channelData
在两种情况下,为简单起见,活动仅在传入活动包含文本“发送用户数据”时发布。另外,请注意,我演示了两种使用商店的方法:间接和直接调用here。
希望获得帮助!