diff --git a/oauth2/__init__.py b/oauth2/__init__.py index dfdb90fe..678a0363 100644 --- a/oauth2/__init__.py +++ b/oauth2/__init__.py @@ -807,8 +807,11 @@ def access_token(self, code, redirect_uri, grant_type=None, response, content = self.http.request(uri) if not response.status == 200: raise Error(str(response.status)) - response_args = simplejson.loads(content) - + try: + response_args = simplejson.loads(content) + except ValueError: + response_args = dict([part.split('=') for part in content.split('&')]) + error = response_args.pop('error', None) if error is not None: raise Error(error)