Несанкционированный бот-сервис из веб-чата
Используя Microsoft Bot Framework, я создал Chat Bot, и я могу протестировать Bot с помощью локального эмулятора. Бот-сервис также занимается LUIS, и все снова работает просто отлично. Мой бот-сервис имеет 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
) автоматически. Это не?
- Встроенный в браузер веб-чат выдает несанкционированную ошибку.
- Тест в окнах веб-чата выдает ту же ошибку.
Я также попытался развернуть службу бота, удалив MicrosoftAppId
а также MicrosoftAppPassword
но ничего не меняется.
Это все очень ново для меня. Может ли кто-нибудь помочь мне прояснить этот вопрос? И нормально ли публично разглашать мой идентификатор приложения Microsoft?
Редактировать 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>
1 ответ
401 (Несанкционированный)
Вы можете попробовать следующие шаги для устранения проблемы:
Пожалуйста, проверьте, правильно ли вы указали
MicrosoftAppID
а такжеMicrosoftAppPassword
для вашего бота на блейде настроек приложения.Проверьте, правильно ли вы указали конечную точку сообщения для бота в колонке настроек.
Примечание. Можно также попытаться управлять MicrosoftApp и сгенерировать новый пароль для этого приложения и указать
MicrosoftAppPassword
с новым сгенерированным паролем на блейде настроек приложения и проверьте, работает ли он с новым паролем.Попробуйте создать нового бота на портале Azure и опубликуйте свое бот-приложение в соответствующем веб-приложении, которое вы указали в качестве конечной точки обмена сообщениями, и проверьте, нормально ли работает этот новый бот.
Кроме того, если он все еще не работает должным образом, даже если вы установили правильную конфигурацию, вы можете попытаться создать запрос в службу поддержки, чтобы сообщить об этом.
Я также столкнулся с этой ошибкой "Ошибка: неавторизовано. Недействительный идентификатор приложения передан токену" при попытке получить доступ к боту, развернутому в Azure, из эмулятора бота. Решение заключалось в том, чтобы перейти в раздел Регистрация бота> Контроль доступа> Я добавил себя в качестве владельца бота. И в эмуляторе у меня заработало. Я указал http://localhost: порт и не указал MicrosoftAppId и MicrosoftAppPassword в эмуляторе, и мне удалось отладить бота локально.