Inside get_request_token, this line throws an error (line 224):
**dict( token.split('=') for token in token_info.split('&') )
Traceback (most recent call last):
File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 501, in __call__
handler.get(*groups)
File "/base/data/home/apps/myapp/1/twitter_oauth_handler.py", line 361, in get
self.response.out.write(getattr(client, action)())
File "/base/data/home/apps/myapp/1/twitter_oauth_handler.py", line 202, in login
return self.get_request_token()
File "/base/data/home/apps/myapp/1/twitter_oauth_handler.py", line 224, in get_request_token
**dict( list(token.split('=')) for token in token_info.split('&') )
ValueError: dictionary update sequence element 0 has length 1; 2 is required
Fixed - my mistake. demjson is required. Get it here:
http://deron.meranda.us/python/demjson/demjson-1.4/demjson.py