小编Ram*_*Ram的帖子

将自定义参数从网络聊天控件传递到机器人框架

所以,我目前正在使用这个:

<!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>
Run Code Online (Sandbox Code Playgroud)

它工作正常,但是我有多个针对不同客户端应用程序的 QnA 知识库。所以我想传递“applicationname”的自定义参数来决定 OnTurnAsync 方法中我的 BOT 框架(V4)中的 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'));
})();
Run Code Online (Sandbox Code Playgroud)

但机器人中的 Context.Activity.ChannelData 返回 Null

并且也尝试过

var d1 = window.WebChat.createDirectLine({ token })
window.WebChat.renderWebChat({
        directLine: d1,
        user: { id: 'userid', …
Run Code Online (Sandbox Code Playgroud)

bots azure direct-line-botframework azure-bot-service

1
推荐指数
1
解决办法
3360
查看次数