Yes! gdata.alt.appengine.run_on_appengine(client, store_tokens=False, single_user_mode=True)
(Tanks for the stars :-) On Oct 21, 7:42 pm, Michelschr <[email protected]> wrote: > Hello everyone, > > I want to access one (and only one) spreadsheet of a user from within > a task of a google app engine application. > > This code works in a normal request but not in a task: > client = gdata.spreadsheet.service.SpreadsheetsService() > gdata.alt.appengine.run_on_appengine(client) > client.email = '[email protected]' > client.password = '...' > client.source = '...' > client.ProgrammaticLogin() > feed = client.GetWorksheetsFeed(spreadKey) # > > With the Google Web interface the user can give access to > '[email protected]' for this unique spreadsheet and everything than > goes fine for a normal request. > > I understand that ProgrammaticLogin is normally for 'installed > applications' because with Web apps it's better to ask the > authorization on-line... But what strategy should we use in a task? > > I need to make some treatments on the spreadsheet and these can nicely > be parted in tasks. Like that, I have all the benefits of tasks... > > I could copy all the feeds that I need during a normal request > somewhere in the datastore and later read at this place from the > tasks... But this put a lot of workload on the normal request that > could otherwise be spread on the different tasks. > > ProgrammaticLogin has some advantage over AuthSub because I found > problems when trying to limit the authorization scope to everything in > only one spreadshead. And thus with authSub, it even not work in a > normal request. > > Could someone give me ideas to solve this situation? > > Thanks in advance, > > Michel > > PS: Below the error message and trace > Exception in request: RequestError: {'status': 404L, 'body': '<HTML> > \n<HEAD>\n<TITLE>Not Found</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" > TEXT="#000000">\n<H1>Not Found</H1>\n<H2>Error 404</H2>\n</BODY>\n</ > HTML>\n', 'reason': ''} > Traceback (most recent call last): > File "/base/python_lib/versions/third_party/django-1.0/django/core/ > handlers/base.py", line 86, in get_response > response = callback(request, *callback_args, **callback_kwargs) > File "/base/data/home/apps/.../..._views.py", line 412, in ... > feed = client.GetWorksheetsFeed(spreadKey) # > File "/base/data/home/.../gdata/spreadsheet/service.py", line 126, > in GetWorksheetsFeed > converter=gdata.spreadsheet.SpreadsheetsWorksheetsFeedFromString) > File "/base/data/home/.../gdata/service.py", line 1050, in Get > 'reason': server_response.reason, 'body': result_body} > RequestError: {'status': 404L, 'body': '<HTML>\n<HEAD>\n<TITLE>Not > Found</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000"> > \n<H1>Not Found</H1>\n<H2>Error 404</H2>\n</BODY>\n</HTML>\n', > 'reason': ''} --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
