Hi Vinay,
First, my sincere apologies for not getting back, I got swamped with other
things and couldn't find time to give your suggestions a try. I finally
changed my code to use version 3 API and got most of the functionality back
(except for the group assignment, but I haven't debugged it yet). I am now
back to the same issue with the ChangePhoto(). I tried different variations
and all fail, though with different errors. When I try downloading the image
and explicitly create the MediaSource like this:
photosrc = urllib2.urlopen(photo_url)
photodata = photosrc.read()
gd_client.ChangePhoto(gdata.data.MediaSource(StringIO(photodata),
content_type=photosrc.info().typeheader,
content_length=len(photodata)),
contact_entry_or_url)
I get the error that I previously reported, so I tried changing the
content_type to "image/png", and still get the same error, though it now
refers to "image/png" instead of "image/jpeg". Here is the traceback:
Traceback (most recent call last):
File "scrape_contact.py", line 181, in <module>
main()
File "scrape_contact.py", line 178, in main
change_photo(options, None, options.contacturl, options.photo_url)
File "scrape_contact.py", line 141, in change_photo
contact_entry_or_url)
File
"/Users/hdara/bin/python/lib/python2.6/site-packages/gdata/contacts/client.py",
line 288, in change_photo
ifmatch_header=ifmatch_header, **kwargs)
File "/Users/hdara/bin/python/lib/python2.6/site-packages/atom/client.py",
line 142, in put
http_request=http_request, data=data, **kwargs)
File
"/Users/hdara/bin/python/lib/python2.6/site-packages/gdata/client.py", line
319, in request
RequestError)
gdata.client.RequestError: Server responded with: 415, Content-Type
image/png is not a valid input type.
I even tried passing in a file('/path/to/image') and that too generates the
same error as above, and this definitely worked before. If I pass the url
stream directly, like this:
gd_client.ChangePhoto(urllib2.urlopen(photo_url),
contact_entry_or_url,
content_type='image/jpeg')
I get this error:
Traceback (most recent call last):
File "scrape_contact.py", line 181, in <module>
main()
File "scrape_contact.py", line 178, in main
change_photo(options, None, options.contacturl, options.photo_url)
File "scrape_contact.py", line 152, in change_photo
content_type='image/jpeg')
File
"/Users/hdara/bin/python/lib/python2.6/site-packages/gdata/contacts/client.py",
line 288, in change_photo
ifmatch_header=ifmatch_header, **kwargs)
File "/Users/hdara/bin/python/lib/python2.6/site-packages/atom/client.py",
line 142, in put
http_request=http_request, data=data, **kwargs)
File
"/Users/hdara/bin/python/lib/python2.6/site-packages/gdata/client.py", line
267, in request
uri=uri, auth_token=auth_token, http_request=http_request, **kwargs)
File "/Users/hdara/bin/python/lib/python2.6/site-packages/atom/client.py",
line 98, in request
value.modify_request(http_request)
File "/Users/hdara/bin/python/lib/python2.6/site-packages/gdata/data.py",
line 1216, in modify_request
self.content_length)
File
"/Users/hdara/bin/python/lib/python2.6/site-packages/atom/http_core.py",
line 122, in add_body_part
raise UnknownSize('Each part of the body must have a known size.')
atom.http_core.UnknownSize: Each part of the body must have a known size.
Do you happen to get this functionality working? Could you share a snippet?
--
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