diff --git a/django_mailbox/google_utils.py b/django_mailbox/google_utils.py index c9c6301..ae5047e 100644 --- a/django_mailbox/google_utils.py +++ b/django_mailbox/google_utils.py @@ -59,6 +59,10 @@ def google_api_get(email, url): if r.status_code == 401: # Go use the refresh token refresh_authorization(email) + # Force use of the new token + headers = dict( + Authorization="Bearer %s" % get_google_access_token(email), + ) r = requests.get(url, headers=headers) logger.info("I got a %s", r.status_code) if r.status_code == 200: diff --git a/django_mailbox/transports/gmail.py b/django_mailbox/transports/gmail.py index 99e8189..68bce6a 100644 --- a/django_mailbox/transports/gmail.py +++ b/django_mailbox/transports/gmail.py @@ -35,8 +35,10 @@ def _connect_oauth(self, username): access_token = None while access_token is None: try: - access_token = get_google_access_token(username) + # token refreshed here when expired google_email_address = fetch_user_info(username)['email'] + # retrieve token from db + access_token = get_google_access_token(username) except TypeError: # This means that the google process took too long # Trying again is the right thing to do