How can I use offline-directline for Microsofts Botframework v4?

雨燕双飞 提交于 2019-12-21 05:38:06

问题


I need to run the microsoft botframework v4 on-premise since company internal restrictions forbid me to register the bot on Microsoft Azure or use the connector in the cloud. My idea is to use offline-directline to emulate the connector locally. To my knowledge, the package has been built for Microsoft Botframework V3 and not v4. Has anybody managed to use it for v4?

I followed through instructions however got stuck trying to implement the web chat client. Where and how do I implement

BotChat.App({
    directLine: {
        secret: params['s'],
        token: params['t'],
        domain: params['domain'],
        webSocket: false // defaults to true
    },

in the index.html file of directline v4? The documentation of "offline-directline" is only for Botframework v3.

Is there a sample repository where I could find some info from?


回答1:


Please refer to the instructions in the BotFramework-WebChat repo to see how to host Web Chat v4 in a website. You'll find something that looks like this:

<!DOCTYPE html>
<html>
  <body>
    <div id="webchat" role="main"></div>
    <script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
    <script>
      window.WebChat.renderWebChat({
        directLine: window.WebChat.createDirectLine({ token: 'YOUR_DIRECT_LINE_TOKEN' }),
        userID: 'YOUR_USER_ID',
        username: 'Web Chat User',
        locale: 'en-US',
        botAvatarInitials: 'WC',
        userAvatarInitials: 'WW'
      }, document.getElementById('webchat'));
    </script>
  </body>
</html>

Rather than passing the same kind of object to window.WebChat.renderWebChat's directLine parameter as you would to BotChat.App's directLine parameter, you need to pass the object to window.WebChat.createDirectLine. The object in question is a DirectLineOptions object.

    window.WebChat.renderWebChat({
        directLine: window.WebChat.createDirectLine({
            secret: params['s'],
            token: params['t'],
            domain: params['domain'],
            webSocket: false // defaults to true
        }),

If you don't want to have to pass in any parameters to your Web Chat client, you can include them inline:

            secret: '',
            token: '',
            domain: 'http://localhost:3000/directline',
            webSocket: false // defaults to true

And if you're not particular about running Web Chat in your own HTML page, I recommend foregoing offline-directline and just using the Bot Emulator, which is great for interacting with local bots.



来源:https://stackoverflow.com/questions/55812986/how-can-i-use-offline-directline-for-microsofts-botframework-v4

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!