开发者

Internal Server Error in Web App: Google Latitude API in Google App Engine using Python

I am new to python and Google App Engine. I am currently working on a location based web application, I have used the following sample code http://code.google.com/p/latitudesample/

I was able to run the program in the localhost开发者_C百科, however when I deploy the program and try to access the website I get an Internal Server Error Message.

I check the App Engine log file and it is as follows:

argument 2 to map() must support iteration
Traceback (most recent call last):File"/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 700, in __call__
handler.get(*groups)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/main.py", line 57, in get
self.request.host_url + OAUTH_CALLBACK_PATH, parameters)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth_webapp.py", line 28, in redirect_to_authorization_page
request_token = helper.GetRequestToken(callback_url, parameters)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth_appengine.py", line 78, in GetRequestToken
None)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 262, in sign_request
self.build_signature(signature_method, consumer, token))
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 266, in build_signature
return signature_method.build_signature(self, consumer, token)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 632, in build_signature
oauth_request, consumer, token)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 623, in build_signature_base_string
key = '%s&' % escape(consumer.secret)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 50, in escape
return urllib.quote(s, safe='~')
File "/base/python_runtime/python_dist/lib/python2.5/urllib.py", line 1214, in quote
res = map(safe_map.__getitem__, s)
TypeError: argument 2 to map() must support iteration

I have been trying to figure this out myself, but I have made no progress so far.

I am guessing there is something wrong with line 623 in oauth.py

If you could, please help me locate the error.

    $key = '%s&' % escape(consumer.secret)

The change I've made to the main.py is:

class SetMyOauth(webapp.RequestHandler): 
    def get(self): 
        Config.set('oauth_consumer_key', 'myconsumerkey'), 
        Config.set('oauth_consumer_secret', 'myconsumersecret'), 
        self.response.out.write ("""key and secret set""") 

(Update 17/7/2011)

Upon further inquiry I came across the following error when running the debugger

C:\Python25\lib\threading.py:699: RuntimeWarning: tp_compare didn't return -1 or -2 for exception
  return _active[_get_ident()]
Exception exceptions.SystemError: 'error return without exception set' in <generator object at 0x03C41378> ignored

and it highlighted the following piece of code:

def escape(s):
    """Escape a URL including any /."""
    return urllib.quote(s, safe='~')

which is the same code that is logged in the log file.

However when I run the code in using the development server the application works fine with no errors.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜