Насколько я понимаю, для OAuthPrompt требуется имя соединения. Чтобы создать это, мне нужно использовать регистрацию каналов бота (согласно документация). Однако для этого, похоже, мне нужно создать учетную запись Azure и ввести данные моей платежной карты. Я хотел бы не вводить свои данные, если это возможно, поскольку я не хотел бы взимать плату за использование каких-либо служб Azure. Есть ли способ избежать этого?
Если мне нужно вручную обрабатывать процесс OAuth, я бы хотел, чтобы мой вход в систему отображался в небольшом окне, подобно тому, как кнопка «Разрешить» срабатывает в боте Who. Я пробовал карточки SignIn, которые, как я читал, просто не работают в командах, и я также пробовал действия типа OpenUrl в карточке, которая при нажатии открывает URL-адрес в моем браузере, а не всплывающее окно. Как я могу этого добиться?
Вы можете создать бота Bot Framework (только для Microsoft Teams), используя руководство здесь: https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/bots/bots-create. Подводя итог этой статье, вы можете использовать эту конечную точку для создания бота, отличного от Azure: https://dev.botframework.com/bots/новый.
Если вы решили использовать Azure Bot Framework, с вас не будет взиматься плата за Bot Framework, если Microsoft Teams является вашим единственным каналом (это НЕ включает вашу веб-службу, если вы решили разместить свой код бота в Azure, хотя вы можете выбрать бесплатный уровень, чтобы избежать каких-либо сборов).
Для аутентификации см. этот раздел документации MS Teams: https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/authentication/authentication. В зависимости от того, как вы решили реализовать аутентификацию, в этом разделе есть несколько статей, которые могут быть применимы. Карта OAuth работает в Teams (не в бесплатной версии, не работает с гостевыми учетными записями и работает только с ботами Azure).
Для аутентификации, если вы перенаправляете на другой домен, убедитесь, что вы добавили его в validDomains в манифесте приложения.
В дополнение к OAuthCards я получаю «BotFrameworkAdapter.processActivity(): 500 ERROR — Ошибка: неизвестный тип вложения», когда пытаюсь отправить карту, созданную с помощью CardFactory.oauthCard.
Что вы подразумеваете под графическим каналом?
@BillBliss-MSFT Извините, возможно, термин «канал» неверен, я имею в виду настройки подключения OAuth на странице регистрации каналов ботов. Я не уверен в плате за эту функцию и в том, что, если у меня есть 12-месячная бесплатная учетная запись, эта функция может быть потеряна по истечении срока ее действия. Если возможны сборы, я бы предпочел избежать этого метода аутентификации и вместо этого обработать его самостоятельно, но для этого я хотел бы использовать всплывающее окно, похожее на бота Who, а не открывать его в моем веб-браузере. Надеюсь, это имеет смысл.
После дальнейшего чтения я думаю, что мне не хватило понимания того, что такое каналы. Я предполагаю, что теперь мой вопрос заключается в том, могу ли я настроить параметры подключения OAuth для канала Teams моего приложения без необходимости создания учетной записи Azure. Если бы я создал учетную запись Azure, активировалась бы эта функция после окончания 12 месяцев бесплатного уровня? Я еще не использовал портал Azure, а только использовал dev.botframework.com или веб-сайт студии приложений для регистрации своих ботов.
OAuthCard работает только с ботами, созданными в Azure, а не с ботами, созданными на устаревшем портале. Вам нужно будет свернуть свою собственную авторизацию без нее. См. этот образец: github.com/OfficeDev/microsoft-teams-sample-auth-node. Мои извинения за то, что я не назвал это в своем первоначальном ответе (я обновил его, чтобы отразить)
@AndrewClear Спасибо за вашу помощь. В любом случае, я могу выполнить свою собственную аутентификацию с помощью небольшого всплывающего окна, похожего на аутентификацию в боте Who, или страница входа всегда должна открываться в моем основном браузере?
Да, пожалуйста, посмотрите образец, на который я ссылался в предыдущем комментарии. Там есть примеры как это сделать.
@AndrewClear спасибо за помощь! Мне удалось заставить это работать. Моя проблема заключалась в том, что домен в моей кнопке входа не был добавлен к моим действительным URL-адресам ?
Спасибо, что предложили окончательное решение, я отредактировал свой ответ, чтобы включить его.
Спасибо за Ваш ответ. А как насчет канала Graph? Это будет платный канал?