使用 Microsoft Bot Framework,我创建了一个聊天机器人,并且我能够使用本地模拟器测试该机器人。Bot 服务还处理 LUIS,一切正常。我的 Bot 服务具有MicrosoftAppId
和MicrosoftAppPassword
在web.config
.
我将服务部署到 Azure。然后在浏览器( Github )中嵌入了一个网络聊天,但它不起作用。错误说
Buffer="{
"message": "An error has occurred.",
"exceptionMessage": "Unauthorized",
"exceptionType": "Microsoft.Bot.Connector.MicrosoftAppCredentials+OAuthException",
"stackTrace": " at Microsoft.Bot.Sample.LuisBot.MessagesController.<Post>d__0.MoveNext()
......
"innerException": {
"message": "An error has occurred.",
"exceptionMessage": "Response status code does not indicate success: 401 (Unauthorized).",
"exceptionType": "System.Net.Http.HttpRequestException",
"stackTrace": " at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()\r\n at Microsoft.Bot.Connector.MicrosoftAppCredentials.<RefreshTokenAsync>d__26.MoveNext()"
我相信当我传递我的网络聊天密钥时(我也尝试传递生成的令牌但没有运气),那么它应该被自动授权(传递App Id
和Password
)。不是吗?
- 浏览器嵌入式网络聊天给出未经授权的错误。
- 网络聊天窗口中的测试给出了同样的错误。
我还尝试通过删除来部署 Bot 服务MicrosoftAppId
,MicrosoftAppPassword
但没有任何改变。
这一切对我来说都很新鲜。有人可以帮我弄清楚这个问题吗?公开赠送我的 Microsoft App Id 也可以吗?
编辑 1
在浏览器中实现网络聊天控件。
- 创建了 ASP.Net 空网站并有一个 HTML 页面 (index.html)。
- 以下代码写在 index.html 页面中。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<div id="bot" />
<hr />
<iframe width="400" height="300" src='https://webchat.botframework.com/embed/#Web_App_Bot_Name#?s=Web_Chat_Secret_Key'></iframe>
</body>
</html>