Получите refre sh токенов Microsoft Graph API с помощью OAuthPrompt - PullRequest
2 голосов
/ 18 июня 2020

Я создаю бота MS Teams, который периодически проверяет календарь Outlook пользователей с помощью фоновых потоков, созданных после входа пользователя в систему через OAuthPrompt.

Чтобы реализовать эту функцию, похоже, что мне нужно настроить параметры подключения OAuth и регистрацию приложения, поддерживающую offline_access. Затем получите токен refre sh при получении токена доступа, согласно Получить доступ от имени пользователя .

Но пока я пробовал пример бота , результат OAuthPrompt не содержит токена refre sh. И я не смог найти задокументированный способ его получить.

Как мне достичь цели? Мне нужно взломать OAuthPrompt или какие-то связанные классы? Нужно ли создавать карты с нуля?

Ответы [ 4 ]

3 голосов
/ 20 июня 2020

Образец, который вы используете, подходит для большинства каналов, но Teams ведет себя иначе. Активность вызова отправляется боту, а не активность события, используемая другими каналами . Это действие Invoke необходимо перенаправить в диалоговое окно, если используется OAuthPrompt.

  • См. эту документацию для добавления аутентификации к вашему боту MS Teams, который использует Teams-auth sample.
  • Для лучшего понимания того, как OAuth работает в MS Teams, вы можете обратиться к этой документации, которая объясняет процесс аутентификации.

Надеюсь, это поможет !!

1 голос
/ 01 июля 2020

Я пришел к выводу, что мы не можем получить refresh_token с OAuthPrompt из расследования. Поэтому я придумал другой способ достичь цели. Ключевая идея - создать крошечное веб-приложение только для функции «Войти с учетной записью Microsoft», которое может легко получить refresh_token как обычные веб-приложения.

Вот пример приложения: https://github.com/igrep/example-teams-bot-with-ms-account-refresh-token

0 голосов
/ 17 июля 2020

Еще одна идея пришла мне в голову, когда я писал этот комментарий : запуск диалога, включающего OAuthPrompt в TurnContext, созданном с помощью ConversationRefrence, который сохраняется и передается в фоновый поток, может работать. (Но у меня нет ни времени, ни мотива пробовать!)

0 голосов
/ 17 июля 2020

Флаг alwaysPrompt должен быть ложным. Затем запрос OAuth будет автоматически получать токены refre sh без запроса карты входа. Пожалуйста, обратитесь к ответу на github об этом isse.

Bot composer OAuth refre sh token

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...