From 954017c9ae5ab62a2489e097b18ad8f4f33ea08c Mon Sep 17 00:00:00 2001 From: Marcelo Moreira de Mello Date: Sun, 28 Aug 2016 19:54:39 -0400 Subject: [PATCH] Fixes when oauth tokens expired and fetches a new token. Thanks to Michel Shim @shimeez --- fitbit/api.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fitbit/api.py b/fitbit/api.py index 7a7a20d..d3f8bd5 100644 --- a/fitbit/api.py +++ b/fitbit/api.py @@ -10,6 +10,7 @@ from urllib import urlencode from requests_oauthlib import OAuth2, OAuth2Session +from oauthlib.oauth2.rfc6749.errors import TokenExpiredError from fitbit.exceptions import (BadResponse, DeleteError, HTTPBadRequest, HTTPUnauthorized, HTTPForbidden, HTTPServerError, HTTPConflict, HTTPNotFound, @@ -66,7 +67,7 @@ def make_request(self, url, data={}, method=None, **kwargs): try: auth = OAuth2(client_id=self.client_id, token=self.token) response = self._request(method, url, data=data, auth=auth, **kwargs) - except HTTPUnauthorized as e: + except (HTTPUnauthorized, TokenExpiredError) as e: self.refresh_token() auth = OAuth2(client_id=self.client_id, token=self.token) response = self._request(method, url, data=data, auth=auth, **kwargs)