如何为 Microsoft 的 Botframework v4 使用离线直连?

Mor*_*tzB 5 html azure chatbot botframework direct-line-botframework

我需要在本地运行microsoft botframework v4,因为公司内部限制禁止我在 Microsoft Azure 上注册机器人或在云中使用连接器。我的想法是使用offline-directline在本地模拟连接器。据我所知,该软件包是为 Microsoft Botframework V3 而不是 v4 构建的。有没有人设法将它用于 v4?

我按照说明进行操作,但是在尝试实现网络聊天客户端时遇到了困难。我在哪里以及如何实施

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

在直达线 v4 的 index.html 文件中?“offline-directline”的文档仅适用于 Botframework v3。

是否有示例存储库可以从中找到一些信息?

Kyl*_*ney 5

请参阅BotFramework-WebChat 存储库中的说明,了解如何在网站中托管 Web Chat v4。你会发现看起来像这样的东西:

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

而不是传递同一种对象来window.WebChat.renderWebChatdirectLine参数,你会到BotChat.AppdirectLine参数,你需要将对象传递给window.WebChat.createDirectLine。所讨论的对象是一个DirectLineOptions对象。

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

如果您不想将任何参数传递给您的网络聊天客户端,您可以内联包含它们:

            secret: '',
            token: '',
            domain: 'http://localhost:3000/directline',
            webSocket: false // defaults to true
Run Code Online (Sandbox Code Playgroud)

如果您对在自己的 HTML 页面中运行 Web Chat 并不特别,我建议您放弃离线直连并仅使用Bot Emulator,它非常适合与本地机器人交互。