При действительной регистрации приложения v4 BotFramework SDK возвращается неавторизованным - PullRequest
0 голосов
/ 23 января 2019

Я работал с Кайлом Х. в чате поддержки Azure, и он рекомендовал мне опубликовать это здесь.

Пожалуйста, поймите, поскольку я прочитал все соответствующие сообщения о переполнении стека и проявил должную осмотрительность.

Я несколько раз полностью удалял и перезапускал свои ресурсы Azure и исходный код.Используя это руководство: https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-deploy-azure?view=azure-bot-service-4.0

В проекте бота используется шаблон v4 'Echo'.

В портале Azure выполните тестирование в веб-чате: "There was an error sending this message to your bot: HTTP status code Forbidden"

В эмуляторе бота с настроенным ngrok: Cannot post activity. Unauthorized.

Следуйте приведенным ниже инструкциям: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-troubleshoot-authentication-problems?view=azure-bot-service-4.0#step-2

Я запустил: curl -k -X POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token -d "grant_type=client_credentials&client_id=b7404e9f-0e74-4174-aa4f-447fdd96d7f0&client_secret=REMOVED&scope=https%3A%2F%2Fapi.botframework.com%2F.default" и мне вернули действительный токен доступа.

Я неоднократно подтверждал, что для регистрации моего приложения используется https, а также маршрут / api / messages,и что у моей службы приложений есть две клавиши MicrosoftAppId и MicrosoftAppPassword, и они установлены соответствующим образом.Включая остановку и запуск и перезапуск функциональности.Я также гарантировал, что во время развертывания (VS 2017 Publish) он удалит существующие файлы.

Моя последняя попытка состояла в том, чтобы обновить бот 'Echo' шаблона до .net core 2.2 - который успешно развернут.Я снова проверил идентификатор приложения и пароль приложения, как описано выше, и, к сожалению, и эмулятор бота, и тест в веб-чате не сработали с одинаковыми ошибками.

Правка 1: я использовал «Создать новый ресурс» и выбрал «Шаблон веб-приложения бота.Я выбрал бот «Эхо».Я также выбрал «Автоматически генерировать идентификатор приложения и пароль».Это привело к развертыванию бота, в котором не было ошибок авторизации.Тем не менее, я заметил, что вместо ресурса «Регистрация канала бота» - вместо этого был создан «бот веб-приложения».При проверке «Настройки приложения», идентификатор приложения и пароль отсутствуют, но он работает просто отлично.

Редактировать 2: Я исследовал глубже и узнал, что «Web App Bot», созданный в Azure, использует botFilePathи настройки приложения botFileSecret и, вероятно, хранит там идентификатор приложения и пароль приложения.

Редактировать 3: Существует огромная разница между шаблоном E4Bot BotBuilder v4, который вы используете в Visual Studio при создании нового проекта, и используемым шаблоном EchoBotв Azure при создании нового ресурса.Теперь сужу его.

Редактировать 4: я смог использовать созданного в Azure веб-бота и изменить его, чтобы продолжить работу.Это было невозможно с помощью шаблонов Vsix, даже при условии, что конфигурация приложения и конфигурация файла .bot были правильными.

Редактировать 5: Я также узнал, что v4 не поддерживает Microsoft Teams - и это было всей целью моей работы,Документация v3 почти не существует.Поэтому я думаю, что буду использовать совершенно другую среду для интеграции с командами.Я даже пытался реализовать: https://github.com/OfficeDev/BotBuilder-MicrosoftTeams-dotnet, но мой бот отвечает только "Sorry, there was a problem encountered with your request" в командах.

Редактировать 6: Мне удалось заставить бот работать в Microsoft Teams во время процесса решения несанкционированного доступа.ошибка.

Я создал бота Echo в Azure и использовал App Studio в Microsoft Teams для добавления манифеста и добавления бота в нашу команду.

После этого я импортировал проект, расположенный здесь: https://github.com/OfficeDev/BotBuilder-MicrosoftTeams-dotnet/tree/master/CSharp/Samples/Microsoft.Bot.Builder.Teams.TeamEchoBot

Затем я изменил setup.cs для работы с зашифрованным файлом .bot на основе исходного кода, который создал Echo Bot в Azure.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Если вы изо всех сил пытаетесь развернуть своего бота, я бы порекомендовал взглянуть на это руководство .Пошаговые инструкции помогут вам создать бота в Azure, а затем вы сможете скачать исходный код, разработать своего бота и повторно развернуть его.

Рад, что смог помочь!

0 голосов
/ 23 января 2019

Шаблоны VSIX будут генерировать код Startup, который использует файл .bot для appId / secret и, при развертывании в Azure, будет искать конечную точку с именем "production", что вам потребуется добавьте себя в файл .bot по умолчанию с appid и секретом вашего подготовленного бота.

Для получения более подробной информации, проверьте этот предыдущий ответ, который я дал на эту тему .

...