Я использую пакет python reports-oauthlib для подключения к Microsoft Graph. Я использую поток учетных данных клиента OAuth 2.0.
Следующий упрощенный код работает отлично:
from oauthlib.oauth2 import BackendApplicationClient
from requests_oauthlib import OAuth2Session
client = BackendApplicationClient(client_id='myclientid')
token_url = "https://login.microsoftonline.com/mydomain.onmicrosoft.com/oauth2/v2.0/token"
msgraph = OAuth2Session(client=client)
msgraph.fetch_token(
token_url = token_url,
client_secret = 'myclientsecret',
scope='https://graph.microsoft.com/.default')
response = msgraph.get(
url="https://graph.microsoft.com/v1.0/users/user@mydomain.com/messages")
Пока это работает, токен доступа на предъявителя в этом случае действителен только в течение 1 часа. Пакет запросы-oauthlib имеет поддержку для обновления токенов , но кажется, что он ограничен типами токенов, которые поставляются с отдельными токенами обновления. Поток учетных данных клиента, используемый в Microsoft Graph, выдает только access_token.
Поэтому у меня следующие вопросы:
- Есть ли способ сделать так, чтобы запрос-oauthlib обновлял токен автоматически вэтот вариант использования или мне нужно вручную отслеживать возраст моего токена и явно обновлять его по мере необходимости?
- Я не привязан к запросу-oauthlib, так что если есть лучшая библиотека, которая выполняет автообновлениеМне было бы интересно использовать его.