from django.utils import timezone from requests import post from django.conf import settings from .models import UserModel CLIENT_SECRETS_FILE = "client_secrets.json" def has_expired(credentials): expiry_time = credentials['access_token'] return str(timezone.datetime.now()) > expiry_time def get_access_token(request): uid = request.user.id user = UserModel.objects.filter(pk=uid).first() if user: refresh_token = user.refresh_token else: return None client_id = settings.CLIENT_ID client_secret = settings.CLIENT_SECRET token_uri = "https://oauth2.googleapis.com/token" print(client_id, client_secret, token_uri) params = { "grant_type": "refresh_token", "client_id": client_id, "client_secret": client_secret, "refresh_token": refresh_token } response = post(token_uri, data=params).json() access_token = response['access_token'] expires_in = response['expires_in'] expired_at = timezone.datetime.now() + timezone.timedelta(seconds=expires_in) expiry = str(expired_at) credentials = { 'access_token': access_token, 'expiry': expiry } request.session['credentials'] = credentials return response['access_token']