Javascript 在任何浏览器中集成bot framework v4和js时,LUIS都不起作用

Javascript 在任何浏览器中集成bot framework v4和js时,LUIS都不起作用,javascript,botframework,azure-language-understanding,web-chat,Javascript,Botframework,Azure Language Understanding,Web Chat,我在C#.net Core SDK v4中用创建了一个聊天机器人,web聊天可以很好地与iframe配合使用 <iframe src='https://webchat.botframework.com/embed/NAME_OF_BOT?s=YOUR_SECRET_HERE' style='min-width: 400px; width: 100%; min-height: 500px;'></iframe> 在startup.cs文件中: // Co

我在C#.net Core SDK v4中用创建了一个聊天机器人,web聊天可以很好地与iframe配合使用

<iframe src='https://webchat.botframework.com/embed/NAME_OF_BOT?s=YOUR_SECRET_HERE'  style='min-width: 400px; width: 100%; min-height: 500px;'></iframe>
在startup.cs文件中:

        // Configure adapters
        // DefaultAdapter is for all regular channels that use Http transport
        services.AddSingleton<IBotFrameworkHttpAdapter, DefaultAdapter>();
//配置适配器
//DefaultAdapter适用于所有使用Http传输的常规通道
services.AddSingleton();

当机器人进入用户数据请求流(不需要LUIS或QnA)时,它会很好地响应我,但当我发送需要使用LUIS和QnA的消息时,它会向我发送错误。

只需确认WebChat
此处的“你的秘密”和DirectLine
你的“直接线路”秘密应为两个不同的值

在您能够检索
您的\u DIRECT\u LINE\u SECRET
的值之前,您需要通过Azure Portal>MyBot Resource>频道将您的机器人连接到DIRECT LINE频道,有关如何执行此操作的详细说明已提供

作为旁白

在将来,如果您可以发布一条详细的错误消息(在本例中是来自)来演示您遇到的错误,而不是仅仅说“它不工作”,这将非常有帮助


有可用的问题指南。

只是为了确认此处的WebChat
您的\u SECRET\u
和DirectLine
您的\u DIRECT\u LINE\u SECRET
应该是两个不同的值

在您能够检索
您的\u DIRECT\u LINE\u SECRET
的值之前,您需要通过Azure Portal>MyBot Resource>频道将您的机器人连接到DIRECT LINE频道,有关如何执行此操作的详细说明已提供

作为旁白

在将来,如果您可以发布一条详细的错误消息(在本例中是来自)来演示您遇到的错误,而不是仅仅说“它不工作”,这将非常有帮助


有可用的问题指南。

如果不使用iframe,则这是包含在html页面中的当前实现。页面不应阻止您使用LUIS,因为其中一个不依赖另一个。如果无法读取返回的数据,则从页面返回给bot的内容可能是导致LUIS错误的关键点

下面的代码可以找到。回购协议中有许多样本可供参考

请注意,我通过在本地运行API服务来交换我的直连密码。你不应该在你的页面上包含你的直连密码,因为任何有安全风险的人都可以访问它

如果设置此页面后仍然存在LUIS错误,那么我将返回到
cognitivemodels.json
skills.json
、或
.dispatch
文件中的LUIS设置

希望有帮助


网络聊天:GitHub Stargazers的自定义附件
html,
身体{
身高:100%
}
身体{
保证金:0
}
#网络帽{
身高:100%;
宽度:100%;
}
(异步函数(){
"严格使用",;
//要与您的机器人通话,您应该使用使用直连密码交换的令牌。
//永远不要将直连密码放入浏览器或客户端应用程序中。
// https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-authentication
const res=等待取数('http://localhost:3500/directline/token“,{方法:'POST'});
const{token}=await res.json();
const{ReactWebChat}=window.WebChat;
window.ReactDOM.render(
,
document.getElementById('webchat')
);
document.querySelector(“#webchat>*”).focus();
})().catch(err=>console.error(err));

如果不使用iframe,这是当前用于在html页面中包含的实现。页面不应阻止您使用LUIS,因为其中一个不依赖另一个。如果无法读取返回的数据,则从页面返回给bot的内容可能是导致LUIS错误的关键点

下面的代码可以找到。回购协议中有许多样本可供参考

请注意,我通过在本地运行API服务来交换我的直连密码。你不应该在你的页面上包含你的直连密码,因为任何有安全风险的人都可以访问它

如果设置此页面后仍然存在LUIS错误,那么我将返回到
cognitivemodels.json
skills.json
、或
.dispatch
文件中的LUIS设置

希望有帮助


网络聊天:GitHub Stargazers的自定义附件
html,
身体{
身高:100%
}
身体{
保证金:0
}
#网络帽{
身高:100%;
宽度:100%;
}
(异步函数(){
"严格使用",;
//要与您的机器人通话,您应该使用使用直连密码交换的令牌。
//永远不要将直连密码放入浏览器或客户端应用程序中。
// https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-authentication
const res=等待取数('http://localhost:3500/directline/token“,{方法:'POST'});
const{token}=await res.json();
const{ReactWebChat}=window.WebChat;
window.ReactDOM.render(
,
document.getElementById('webchat')
);
document.querySelector(“#webchat>*”).focus();
})().catch(err=>console.error(err));

应用程序洞察发送给我此错误:字典中不存在给定的键“es”

我将代码更改为:

<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 ({
file: ''
}),
locale: 'en-US',
},
document.getElementById ('webchat')
);
</script>
</body>
</html>

window.WebChat.renderWebChat(
{
directLine:window.WebCha
        // Configure adapters
        // DefaultAdapter is for all regular channels that use Http transport
        services.AddSingleton<IBotFrameworkHttpAdapter, DefaultAdapter>();
<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 ({
file: ''
}),
locale: 'en-US',
},
document.getElementById ('webchat')
);
</script>
</body>
</html>