@@ -63,6 +63,7 @@ def __init__(self, key, secret, redirect_uri, permissions=[]):
6363 self .state = None
6464 self .authorization_code = None
6565 self .token = None
66+ self ._error = None
6667
6768 @property
6869 def authorization_url (self ):
@@ -77,6 +78,10 @@ def authorization_url(self):
7778 qsl = ['%s=%s' % (urllib .quote (k ), urllib .quote (v )) for k , v in qd .items ()]
7879 return '%s?%s' % (self .AUTHORIZATON_URL , '&' .join (qsl ))
7980
81+ @property
82+ def last_error (self ):
83+ return self ._error
84+
8085 def get_new_state (self ):
8186 return hashlib .md5 (
8287 '%s%s' % (random .randrange (0 , 2 ** 63 ), self .secret )).hexdigest ()
@@ -96,6 +101,7 @@ def get_access_token(self, timeout=60):
96101 raise LinkedInHTTPError (error .message )
97102 else :
98103 if 'error' in response :
104+ self ._error = response ['error_description' ]
99105 raise LinkedInError (response )
100106 self .token = AccessToken (response ['access_token' ], response ['expires_in' ])
101107 return self .token
@@ -156,7 +162,7 @@ def get_profile(self, member_id=None, member_url=None, selectors=None,
156162 except requests .ConnectionError as error :
157163 raise LinkedInHTTPError (error .message )
158164 else :
159- if 'error' in response :
165+ if self . request_succeeded ( response ) :
160166 raise LinkedInError (response )
161167 return response
162168
@@ -172,7 +178,7 @@ def search_profile(self, selectors=None, params=None, headers=None):
172178 except requests .ConnectionError as error :
173179 raise LinkedInHTTPError (error .message )
174180 else :
175- if 'error' in response :
181+ if self . request_succeeded ( response ) :
176182 raise LinkedInError (response )
177183 return response
178184
0 commit comments