I have a Google App Engine app - http://mylovelyapp.appspot.com/

It has a page - mylovelypage

For the moment, the page just does `self.response.out.write('OK')`

If I run the following Python at my computer:

    import urllib2
    f = urllib2.urlopen("http://mylovelyapp.appspot.com/mylovelypage";)
    s = f.read()
    print s
    f.close()

it prints "OK"

the problem is if I add `login:required` to this page in the app's
yaml

then this prints out the HTML of the Google Accounts login page

I've tried "normal" authentication approaches. e.g.

    passman = urllib2.HTTPPasswordMgrWithDefaultRealm()

    auth_handler = urllib2.HTTPBasicAuthHandler()
    auth_handler.add_password(None,
                              uri='http://mylovelyapp.appspot.com/
mylovelypage',
                              user='[EMAIL PROTECTED]',
                              passwd='billybobspasswd')
    opener = urllib2.build_opener(auth_handler)
    urllib2.install_opener(opener)

But it makes no difference - I still get the login page's HTML back.

I've tried Google's ClientLogin auth API (http://code.google.com/apis/
accounts/docs/AuthForInstalledApps.html), but I can't get it to work.

    h = httplib2.Http()

    auth_uri = 'https://www.google.com/accounts/ClientLogin'
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    myrequest = "Email=%s&Passwd=%s&service=ah&source=DALELANE-0.0" %
("[EMAIL PROTECTED]", "billybobspassword")
    response, content = h.request(auth_uri, 'POST', body=myrequest,
headers=headers)

    if response['status'] == '200':
        authtok = re.search('Auth=(\S*)', content).group(1)

        headers = {}
        headers['Authorization'] = 'GoogleLogin auth=%s' %
authtok.strip()
        headers['Content-Length'] = '0'

        response, content = h.request("http://mylovelyapp.appspot.com/
mylovelypage",
                                      'POST',
                                      body="",
                                      headers=headers)

        while response['status'] == "302":
            response, content = h.request(response['location'],
'POST', body="", headers=headers)

        print content

I do seem to be able to get some token correctly, but attempts to use
it in the header when I call 'mylovelypage' still just return me the
login page's HTML. :-(

Can anyone help, please?

Could I use the GData client library (http://code.google.com/p/gdata-
python-client/) to do this sort of thing? From what I've read, I think
it should be able to access App Engine apps, but I haven't been any
more successful at getting the authentication working for App Engine
stuff there either

Any pointers to samples, articles, or even just keywords I should be
searching for to get me started, would be very much appreciated.

Thanks!

--~--~---------~--~----~------------~-------~--~----~
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