#.net #botframework #microsoft-teams
#.net #botframework #microsoft-teams
Вопрос:
При разработке бота Microsoft Teams я столкнулся с проблемой, из-за которой конечная точка токена обновления никогда не вызывается. Я считаю, что это моя ошибка в конфигурациях, но я не могу найти никаких подробностей о том, что именно происходит не так. Что я сделал:
- Задайте URL-адрес обмена токенами в настройках бота на стороне Azure
- Установите области на
email offline_access
- Проверил, что
refresh_token
было выпущено: я вижу, чтоcode
были проблемы:
{
"code": "[removed for security reasons]",
"grant_type": "authorization_code",
"redirect_uri": "https://token.botframework.com/.auth/web/redirect",
"client_id": "microsoft-teams-bot",
"client_secret": "[removed for security reasons]"
}
и после этого refresh_token
был выдан code
:
{
"scope": "email offline_access",
"token_type": "Bearer",
"access_token": "[removed for security reasons]",
"expires_in": 3600,
"refresh_token": "[removed for security reasons]"
}
но refresh_token
после этого никогда не используется.
Есть идеи, что может быть не так?
Комментарии:
1. Обновление токена может быть обработано в поддерживаемом процессе. Если срок действия текущего токена истекает, вызывается метод обновления токена аутентификации. Не могли бы вы, пожалуйста, проверить эти документы для получения дополнительной информации
2. То, что я пытаюсь отладить, это метод токена аутентификации обновления, не вызывается.
3. Токен авторизации обновления будет вызван только тогда, когда истечет срок действия вашего текущего токена. Это будет автоматически обработано в серверной части.
4. Проблема в том, что он не вызывается. Срок действия токена доступа истекает, а конечная точка обмена токенами не вызывается. Таким образом, пользователям приходится повторно входить в систему каждый час. И я не могу найти, почему он не вызывается (
5. github.com/microsoft/botframework-sdk/issues/5990 перепечатано на github.
Ответ №1:
Проблема заключалась в неправильной конфигурации бота. Он использует конечную точку обновления для получения токена доступа с помощью токена обновления (но я думаю, что он использует конечную точку exchange).