Skip to content

Commit ef5c8c3

Browse files
committed
Merge pull request #87 from riselabs/OAuth2RefreshToken
change condition for refresh_token() according to expired_token response
2 parents 167ca23 + 48169f8 commit ef5c8c3

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

fitbit/api.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def make_request(self, url, data={}, method=None, **kwargs):
6868
try:
6969
auth = OAuth2(client_id=self.client_id, token=self.token)
7070
response = self._request(method, url, data=data, auth=auth, **kwargs)
71-
except TokenExpiredError as e:
71+
except HTTPUnauthorized as e:
7272
self.refresh_token()
7373
auth = OAuth2(client_id=self.client_id, token=self.token)
7474
response = self._request(method, url, data=data, auth=auth, **kwargs)
@@ -79,12 +79,11 @@ def make_request(self, url, data={}, method=None, **kwargs):
7979
if response.status_code == 401:
8080
d = json.loads(response.content.decode('utf8'))
8181
try:
82-
if(d['errors'][0]['errorType'] == 'oauth' and
83-
d['errors'][0]['fieldName'] == 'access_token' and
84-
d['errors'][0]['message'].find('Access token invalid or expired:') == 0):
85-
self.refresh_token()
86-
auth = OAuth2(client_id=self.client_id, token=self.token)
87-
response = self._request(method, url, data=data, auth=auth, **kwargs)
82+
if(d['errors'][0]['errorType'] == 'expired_token' and
83+
d['errors'][0]['message'].find('Access token expired:') == 0):
84+
self.refresh_token()
85+
auth = OAuth2(client_id=self.client_id, token=self.token)
86+
response = self._request(method, url, data=data, auth=auth, **kwargs)
8887
except:
8988
pass
9089

@@ -159,16 +158,12 @@ def refresh_token(self):
159158
obtained in step 2.
160159
the token is internally saved
161160
"""
162-
163-
unenc_str = (self.client_id + ':' + self.client_secret).encode('utf8')
164-
headers = {
165-
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
166-
'Authorization': b'Basic ' + base64.b64encode(unenc_str)
167-
}
168161
self.token = self.oauth.refresh_token(
169162
self.refresh_token_url,
170163
refresh_token=self.token['refresh_token'],
171-
headers=headers)
164+
auth=requests.auth.HTTPBasicAuth(self.client_id, self.client_secret)
165+
)
166+
172167
return self.token
173168

174169

0 commit comments

Comments
 (0)