views:

27

answers:

1

I built a wiki using Google App engine and the Data APIs. The wiki pages are stored as Google Base 'Reference Articles.' I want users to be able to view, edit, and delete the items, so when a request is made to the server, client login uses my username and password, and retrieves or edits the data on the user's behalf. The login code:

client = gdata.base.service.GBaseService()
client.ssl = False
gdata.alt.appengine.run_on_appengine(client)

#EMAIL, API_KEY and PASSWORD are constants stored on the server
client.email = EMAIL
client.password = PASSWORD
client.api_key = API_KEY
client.ProgrammaticLogin()

q = gdata.base.service.BaseQuery()
q.feed = '/base/feeds/items/' + self.base_id
item = base_client.GetItem(q.ToUri())

This works fine for me, but if I log out of my google account, it returns the following error:

'status': 401L, 'body': '<HTML>\n<HEAD>\n<TITLE>Authorization required</TITLE>

All I want is for the users to be able to CRUD my data stored on Base. What am I doing wrong?
Thanks in advance

+1  A: 

It sounds like logging out in your client is invalidating all sessions for your account. Your best bet is probably to create a role account specifically for your app to use.

Nick Johnson