将值令牌和用户电子邮件从直线网站传递到机器人进行身份验证

问题描述 投票:0回答:1

我正在将以下值从网站渠道(直线)传递给我的机器人。如何在漫游器中接收这些值?可以请你解释一下吗?

 <script>
  window.WebChat.renderWebChat({
      directLine: window.WebChat.createDirectLine({ token: '@Model.Token' }),
        userID: '@Model.UserId'
  }, document.getElementById('webchat'));
</script>

谢谢,塞尔瓦

botframework direct-line-botframework
1个回答
0
投票

如果要获取这些值中的任何一个(或其他任何值),则应通过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

希望获得帮助!

© www.soinside.com 2019 - 2024. All rights reserved.