I am having the same issue as John, i.e. the python linked library
works from the python interpreter but gives signature_invalid error
when run on GAE development server or production server.

I rewrote the library to use urlfetch directly, instead of urllib, but
I got the same error.

It is true that urlfetch changes headers, but those do not enter the
signature calculation.

On Aug 4, 11:44 pm, Chris Copeland <[email protected]> wrote:
> Hi John,
>
> This is a just a guess since I haven't used that library:  when you're
> running in GAE, urllib (which the linkedin lib uses) is actually a wrapper
> for GAE's URL Fetch.  GAE's URL Fetch removes some headers and adds others.
> If any of those headers are included in generating the checksum, then that
> would be your problem.
>
> -Chris
>
> On Thu, Aug 4, 2011 at 8:36 AM, John OBrien <[email protected]>wrote:
>
>
>
>
>
>
>
> > Hiya,
>
> > I'm a bit of a newbie, so I apologize if the answer to this question is
> > obvious. I'm having a bit of trouble using the python linkedin library (
> >http://code.google.com/p/python-linkedin/).
>
> > When I attempt to use the library from an interactive Python interpreter,
> > it works great:
>
> > import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
> > /Library/Frameworks/Python.
> > framework/Versions/2.5/**Resources/Python.app/Contents/**MacOS/Python
> > 2.5.4 (r254:67917, Dec 23 2008, 14:57:27)
> > [GCC 4.0.1 (Apple Computer, Inc. build 5363)]
> > >>KEY = "xxxxxx"
> > >>SECRET = "xxx"
> > >>RETURN_URL = 
> > >>"http://localhost:8080/**settings/linkedin/return<http://localhost:8080/settings/linkedin/return>
> > "
> > >>from linkedin import linkedin
> > >>api = linkedin.LinkedIn(KEY, SECRET, RETURN_URL)
> > >>result = api.requestToken()
> > >>print result
> > True
> > >>print api.getRequestTokenError()
> > None
>
> > However, when I wrap a Google App Engine webapp.RequestHandler around it, I
> > get an error:
>
> > from linkedin import linkedin
>
> > from google.appengine.ext import webapp
> > from google.appengine.ext.webapp.**util import run_wsgi_app
>
> > class LinkedInSettings(webapp.**RequestHandler):
> >     def get(self):
> >         KEY = "xxxx"
> >         SECRET = "xxxx"
> >         RETURN_URL = 
> > "http://localhost:8080/**settings/linkedin/return<http://localhost:8080/settings/linkedin/return>
> > "
> >         api = linkedin.LinkedIn(KEY, SECRET, RETURN_URL)
> >         result = api.requestToken()
> >         print result
> >         print api.getRequestTokenError()
>
> > application = webapp.WSGIApplication([('/settings/linkedin.*',
> > LinkedInSettings)])
>
> > def main():
> >     run_wsgi_app(application)
>
> > if __name__ == "__main__":
> >     main()
>
> > This a request tohttp://localhost:8080/settings/linkedinwill print out:
>
> > False
> > signature_invalid
> > Status: 200 OK
> > Content-Type: text/html; charset=utf-8
>
> > Cache-Control: no-cache
> > Expires: Fri, 01 Jan 1990 00:00:00 GMT
> > Content-Length: 0
>
> > Have anyone ever encountered this behavior before? Do you happen to have
> > any ideas as to what is going on that might explain why the signature is
> > valid when the code is executed from the interpreter, but invalid when
> > executed within the webapp.RequestHandler class?
>
> > Thank you for time,
>
> > Regards,
>
> > John
>
> >  --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To view this discussion on the web visit
> >https://groups.google.com/d/msg/google-appengine/-/DJNLZfBcZhgJ.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected].
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to