我需要在本地上运行 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
,而不是像传递directLine
的BotChat.App
参数那样将相同类型的对象传递给directLine
的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
}),
如果您不需要将任何参数传递给Web聊天客户端,则可以内联它们:
secret: '',
token: '',
domain: 'http://localhost:3000/directline',
webSocket: false // defaults to true
而且,如果您不太想在自己的HTML页面中运行Web Chat,我建议您使用前述的offline-directline并仅使用Bot Emulator,这对于与本地机器人进行交互非常有用。