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

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

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

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

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

最佳答案

请引用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>

您需要将对象传递给window.WebChat.renderWebChat,而不是像传递directLineBotChat.App参数那样将相同类型的对象传递给directLinewindow.WebChat.createDirectLine参数。有问题的对象是 DirectLineOptions 对象。
    window.WebChat.renderWebChat({
        directLine: window.WebChat.createDirectLine({
            secret: params['s'],
            token: params['t'],
            domain: params['domain'],
            webSocket: false // defaults to true
        }),

如果您不需要将任何参数传递给Web聊天客户端,则可以内联它们:
            secret: '',
            token: '',
            domain: 'http://localhost:3000/directline',
            webSocket: false // defaults to true

而且,如果您不太想在自己的HTML页面中运行Web Chat,我建议您使用前述的offline-directline并仅使用Bot Emulator,这对于与本地机器人进行交互非常有用。

10-07 20:34