来自网络聊天的未经授权的机器人服务
Unauthorized Bot Service from Web Chat
我使用 Microsoft Bot Framework 创建了一个聊天机器人,并且能够使用本地模拟器测试该机器人。机器人服务还处理 LUIS,一切再次正常。我的机器人服务在 web.config
.
中有 MicrosoftAppId
和 MicrosoftAppPassword
我将服务部署到 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
)。不是吗?
- 浏览器嵌入式网络聊天出现未授权错误。
- 在网络聊天中测试 windows 给出同样的错误。
我也尝试通过删除 MicrosoftAppId
和 MicrosoftAppPassword
来部署 Bot 服务,但没有任何变化。
这对我来说都是全新的。有人可以帮我弄清楚这个问题吗?也可以公开放弃我的 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>
- 微软应用程序 ID =
f0f7297e-7a95-4a8f-afc1-eb3d19906cd0
- 通过我的代码呈现的屏幕如下所示。当我发送消息时,它说无法发送。在应用服务的 Azure 诊断中,我看到错误为未经授权。
401 (Unauthorized)
您可以尝试以下步骤来解决问题:
请检查您是否在 应用程序设置 blade 上为您的机器人指定了正确的 MicrosoftAppID
和 MicrosoftAppPassword
。
请检查您是否在 Settings blade.
上为机器人指定了正确的消息端点
注意:您也可以尝试管理您的MicrosoftApp 为该应用程序生成新密码,并在应用程序设置blade中使用新生成的密码指定MicrosoftAppPassword
并检查它是否适用于新密码。
请尝试在 Azure 门户上创建一个新的 bot,并将您的 bot 应用程序发布到您指定为消息传递端点的相应 Web 应用程序,并检查该新 bot 是否正常工作。
此外,如果你设置正确配置后仍然不能正常工作,你可以尝试create support request举报。
我在尝试从机器人模拟器访问部署在 Azure 中的机器人时,也遇到了这个错误“错误:未经授权。令牌上传递的 AppId 无效”。解决方案是转到机器人注册>访问控制>我将自己添加为机器人的所有者。它开始在模拟器中为我工作。我给了 http://localhost:port 并且没有在模拟器中提供 MicrosoftAppId 和 MicrosoftAppPassword 并且我能够在本地调试机器人。
我使用 Microsoft Bot Framework 创建了一个聊天机器人,并且能够使用本地模拟器测试该机器人。机器人服务还处理 LUIS,一切再次正常。我的机器人服务在 web.config
.
MicrosoftAppId
和 MicrosoftAppPassword
我将服务部署到 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
)。不是吗?
- 浏览器嵌入式网络聊天出现未授权错误。
- 在网络聊天中测试 windows 给出同样的错误。
我也尝试通过删除 MicrosoftAppId
和 MicrosoftAppPassword
来部署 Bot 服务,但没有任何变化。
这对我来说都是全新的。有人可以帮我弄清楚这个问题吗?也可以公开放弃我的 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>
- 微软应用程序 ID =
f0f7297e-7a95-4a8f-afc1-eb3d19906cd0
- 通过我的代码呈现的屏幕如下所示。当我发送消息时,它说无法发送。在应用服务的 Azure 诊断中,我看到错误为未经授权。
401 (Unauthorized)
您可以尝试以下步骤来解决问题:
请检查您是否在 应用程序设置 blade 上为您的机器人指定了正确的
MicrosoftAppID
和MicrosoftAppPassword
。请检查您是否在 Settings blade.
上为机器人指定了正确的消息端点注意:您也可以尝试管理您的MicrosoftApp 为该应用程序生成新密码,并在应用程序设置blade中使用新生成的密码指定
MicrosoftAppPassword
并检查它是否适用于新密码。请尝试在 Azure 门户上创建一个新的 bot,并将您的 bot 应用程序发布到您指定为消息传递端点的相应 Web 应用程序,并检查该新 bot 是否正常工作。
此外,如果你设置正确配置后仍然不能正常工作,你可以尝试create support request举报。
我在尝试从机器人模拟器访问部署在 Azure 中的机器人时,也遇到了这个错误“错误:未经授权。令牌上传递的 AppId 无效”。解决方案是转到机器人注册>访问控制>我将自己添加为机器人的所有者。它开始在模拟器中为我工作。我给了 http://localhost:port 并且没有在模拟器中提供 MicrosoftAppId 和 MicrosoftAppPassword 并且我能够在本地调试机器人。