Я работал с Кайлом Х. в чате поддержки 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.