Hi, I am getting the same error, although I am attempting to use 2-legged-oauth. it is possibel to get all the contact information from the domain/.../full/... feed, but the /photos/ feed always returns non well formed token errors
i happen to have tried the alternatie auth method you posted here, but no joy. the 2 legged oauth works everywhere else - is it broken for photo feeds? hope someone is listening jonathon On Wednesday, 15 February 2012 15:14:22 UTC, Kevin Cullinane wrote: > > I am trying to update the a Google Apps profile picture. I am > following the instructions here: > http://code.google.com/googleapps/domain/profiles/developers_guide.html > > My code looks like so : > > import atom.data > import gdata.data > import gdata.contacts.client > import gdata.contacts.data > import cgi > import wsgiref.handlers > > from google.appengine.api import users > from google.appengine.ext import webapp > > email = '[email protected]' > password = 'password' > domain = 'domain.com' > > gd_client = gdata.contacts.client.ContactsClient(domain=domain) > gd_client.ClientLogin(email, password, 'photoUpdate', > account_type="HOSTED") > > > class PicPage(webapp.RequestHandler): > def get(self): > self.response.out.write("""<html><head><title>Domain Photo > Uploader</ > title> > <link > type="text/css" rel="stylesheet" href="/stylesheets/ > form.css"></head> > > <body> > > <form > action="/" enctype="multipart/form-data" method="post"> > > <div><label>Person > Name</label></div> > <div><textarea > name="name" rows="2" columns "60"></ > textarea></div> > > > <div><label>Image</label></div> > > <div><input > type="file" name="img"/></div> > <div><input > type="submit" value="Upload" /></div> > </form> > </body> > > </html>""") > > def post(self): > person_name = self.request.get('name') > person_name2 = str(person_name) > img_img = self.request.get('img') > profile_url = " > https://www.google.com/m8/feeds/photos/profile/ > domain.com/person" > profile_url2 = str(profile_url) > print profile_url > ms = gdata.data.MediaSource(img_img, 'image/jpeg') > media_object = ms > print(profile_url) > def update_profile_photo(gd_client, profile_url, > media_object): > profile = gd_client.GetProfile(profile_url) > > try: > gd_client.ChangePhoto(media_object, > profile) > except gdata.client.RequestError, e: > if e.status == 412: > # Etags mismatch: handle the > exception. > pass > print "Yup!!!!" > update_profile_photo(gd_client,profile_url2,media_object) > #profile = gd_client.GetProfile(profile_url) > #print(profile) > #gd_client.ChangePhoto(media_object, profile) > self.redirect('/') > > def main(): > application = webapp.WSGIApplication( > [('/', PicPage) > ], > debug=True) > > wsgiref.handlers.CGIHandler().run(application) > > if __name__=="__main__": > main() > > Whenever this runs I get this as a response: > > Traceback (most recent call last): > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \ext\webapp\_webapp25.py", line 703, in __call__ > handler.post(*groups) > File "C:\GAE_Local_Files\picupload\sasakipic.py", line 54, in post > update_profile_photo(gd_client,profile_url2,media_object) > File "C:\GAE_Local_Files\picupload\sasakipic.py", line 45, in > update_profile_photo > profile = gd_client.GetProfile(profile_url) > File "C:\GAE_Local_Files\picupload\gdata\contacts\client.py", line > 375, in get_profile > auth_token=auth_token, **kwargs) > File "C:\GAE_Local_Files\picupload\gdata\client.py", line 652, in > get_entry > desired_class=desired_class, **kwargs) > File "C:\GAE_Local_Files\picupload\gdata\client.py", line 278, in > request > version=get_xml_version(self.api_version)) > File "C:\GAE_Local_Files\picupload\atom\core.py", line 520, in parse > tree = ElementTree.fromstring(xml_string) > File "<string>", line 106, in XML > ParseError: not well-formed (invalid token): line 1, column 0 > > I have gone through this line by line in interactive mode, and it is > failing on: > profile = gd_client.GetProfile(profile_url) > > I have no idea with the why this is breaking, please help, I am > exasperated. -- You received this message because you are subscribed to the Google Groups "Google Contacts, Shared Contacts and User Profiles APIs" 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://code.google.com/apis/contacts/community/forum.html
