使用,我创建了一个聊天机器人,我能够使用本地仿真程序测试Bot。Bot服务也处理LUIS,一切都很好。我的机器人服务有MicrosoftAppId和MicrosoftAppPassword in 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)。不是吗?
我还试图通过删除MicrosoftAppId和MicrosoftAppPassword来部署Bot服务,但是没有任何改变。
对我来说都很新鲜。有人能帮我澄清一下这个问题吗?公开发布我的微软应用程序Id也可以吗?
编辑1
浏览器中Web聊天控件的实现。
<!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>
f0f7297e-7a95-4a8f-afc1-eb3d19906cd0
发布于 2018-03-20 06:51:40
401 (未经授权)
您可以尝试以下步骤来解决此问题:
MicrosoftAppID应用程序设置MicrosoftAppPassword刀片上为您的bot指定正确的和。

备注:您还可以尝试Manage your MicrosoftApp和生成该应用程序的新密码,并在Application刀片上指定带有新生成密码的MicrosoftAppPassword,并检查它是否与新密码一起工作。
此外,如果即使您设置了正确的配置,它仍然不能正常工作,您可以尝试使用创建支持请求来报告它。
发布于 2020-08-11 14:28:56
在尝试从bot模拟器访问部署在Azure中的bot时,我还遇到了“错误:未经授权。无效的AppId传递令牌”的错误。解决方案是去bot registration>Access control>,我把自己当成了机器人的所有者。它开始在模拟器里为我工作。我给出了http://localhost:port,没有在模拟器中提供MicrosoftAppId和MicrosoftAppPassword,并且能够在本地调试bot。
https://stackoverflow.com/questions/49361412
复制相似问题