diff --git a/google/refine/refine.py b/google/refine/refine.py index e943d1f..7e21ea5 100644 --- a/google/refine/refine.py +++ b/google/refine/refine.py @@ -118,6 +118,10 @@ class RefineServer(object): """Open a Refine URL, optionally POST data, and return parsed JSON.""" response = json.loads(self.urlopen(*args, **kwargs).read()) if 'code' in response and response['code'] not in ('ok', 'pending'): + if 'Missing or invalid csrf_token parameter' == response['message']: + self.get_csrf_token() + response = json.loads(self.urlopen(*args, **kwargs).read()) + return response error_message = ('server ' + response['code'] + ': ' + response.get('message', response.get('stack', response))) raise Exception(error_message)