Несанкционированный бот-сервис из веб-чата

Используя 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) автоматически. Это не?

  1. Встроенный в браузер веб-чат выдает несанкционированную ошибку.
  2. Тест в окнах веб-чата выдает ту же ошибку.

Я также попытался развернуть службу бота, удалив MicrosoftAppId а также MicrosoftAppPassword но ничего не меняется.

Это все очень ново для меня. Может ли кто-нибудь помочь мне прояснить этот вопрос? И нормально ли публично разглашать мой идентификатор приложения Microsoft?

Редактировать 1

Реализация контроля веб-чата в браузере.

  1. Создан пустой сайт ASP.Net и есть HTML-страница (index.html).
  2. Следующий код написан на странице 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. Идентификатор приложения Microsoft = f0f7297e-7a95-4a8f-afc1-eb3d19906cd0
  2. Экран отображается с помощью моего кода выглядит следующим образом. И когда я отправляю сообщение, он говорит, что не могу отправить. В диагностике Azure для службы приложений я вижу ошибку как неавторизованную.

1 ответ

Решение

401 (Несанкционированный)

Вы можете попробовать следующие шаги для устранения проблемы:

  1. Пожалуйста, проверьте, правильно ли вы указали MicrosoftAppID а также MicrosoftAppPassword для вашего бота на блейде настроек приложения.

  2. Проверьте, правильно ли вы указали конечную точку сообщения для бота в колонке настроек.

    Примечание. Можно также попытаться управлять MicrosoftApp и сгенерировать новый пароль для этого приложения и указать MicrosoftAppPassword с новым сгенерированным паролем на блейде настроек приложения и проверьте, работает ли он с новым паролем.

  3. Попробуйте создать нового бота на портале Azure и опубликуйте свое бот-приложение в соответствующем веб-приложении, которое вы указали в качестве конечной точки обмена сообщениями, и проверьте, нормально ли работает этот новый бот.

Кроме того, если он все еще не работает должным образом, даже если вы установили правильную конфигурацию, вы можете попытаться создать запрос в службу поддержки, чтобы сообщить об этом.

Я также столкнулся с этой ошибкой "Ошибка: неавторизовано. Недействительный идентификатор приложения передан токену" при попытке получить доступ к боту, развернутому в Azure, из эмулятора бота. Решение заключалось в том, чтобы перейти в раздел Регистрация бота> Контроль доступа> Я добавил себя в качестве владельца бота. И в эмуляторе у меня заработало. Я указал http://localhost: порт и не указал MicrosoftAppId и MicrosoftAppPassword в эмуляторе, и мне удалось отладить бота локально.

Другие вопросы по тегам