Actually, it may have still been using my python implementation for
the uploading...must investigate
On Oct 12, 12:46 pm, wsstefan <[EMAIL PROTECTED]> wrote:
> Jun,
>
> You're right, I was missing something. I see you can use insertEntry
> to POST data. All 'entry' has to be is a well formed http request.>From the
> documentation this isn't entirely clear as at first I thought
>
> this was some sort of javascript specific object. I successfully
> posted an image by:
>
> picasaService.setHeaders("Content-type", 'multipart/related;
> boundary="END_OF_PART"');
> picasaService.insertEntry(POST_FEED_URL, data, handleUpload,
> handleError);
>
> Where data was simply the body of the post, including the jpeg data.
>
> I'm glad to see that it works, but documentation could be clearer as
> to what 'entry' is because from the API it seems as if you can only
> create an 'entry' by using the constructor.
>
> Thanks.
>
> On Oct 6, 2:04 pm, "Stefan Roesch" <[EMAIL PROTECTED]> wrote:
>
> > Well in order to add a photo to picasa manually, you have to send a POST
> > request as outlined here:
>
> >http://code.google.com/apis/picasaweb/gdata.html#Add_Photo
>
> > The way you'd do this with the Python client librrary for example is call a
> > method named POST which creates the headers and multipart message and then
> > pumps in a binary stream for the image data where the beef of the code is:
>
> > insert_connection = atom.service.AtomService._CreateConnection(self,
> > uri, 'POST', extra_headers, url_params, escape_params)
>
> > insert_connection.send(multipart[0])
> > insert_connection.send(data_str)
> > insert_connection.send(multipart[1])
>
> > while 1:
> > binarydata = media_source.file_handle.read(100000)
> > if (binarydata == ""): break
> > insert_connection.send(binarydata)
>
> > insert_connection.send(multipart[2])
>
> > As far as I can tell, there isn't a low level enough way of accomplishing
> > this with the current Javascript library.
>
> > I've tried to get around this using my own XMLHttpRequest, but I haven't
> > quite worked out my bug yet, because the 2 main problems you have to deal
> > with are:
>
> > 1) cross-domain calling XMLHttpRequest
> > 2) manually dealing with authentication
>
> > I am getting around the cross-domain issue with an Apache RewriteRule which
> > is working for an unauthenticated GET request. As far as I can tell I've
> > constructed my request correctly according to the link outlined above and
> > set the following headers in Javascript:
>
> > xmlhttp.setRequestHeader("Authorization", 'AuthSub
> > token="'+picasaToken+'"');
> > xmlhttp.setRequestHeader("Content-type", 'multipart/related;
> > boundary="END_OF_PART"');
> > xmlhttp.setRequestHeader("Content-length", data.length);
> > xmlhttp.setRequestHeader("MIME-version", "1.0");
> > xmlhttp.setRequestHeader("Connection", "close");
> > xmlhttp.open("POST","post",true);
> > xmlhttp.send(data);
>
> > Where "post" is the Apache rewrite:
>
> > RewriteRule
> > ^post$http://picasaweb.google.com/data/feed/api/user/default/album/MyTestAlbum[P]
>
> > Of course this entire process could be circumvented if the Javascript
> > library had a post method so there could be a little lower level control.
>
> > The end result is I have a binary stream I'm encoding on the fly and I need
> > to post that binary image data somehow, which insertEntry cannot accomodate.
> > I accomplished this with the Python Client Library since I had access to
> > the source. I think i actually may be forgetting to append the gsessionid
> > to my url, but it's just not very user friendly at the moment and also
> > requires having admin rights on Apache to add the proxy module and make the
> > rewrite.
>
> > It would just be nice to have a simpler way of uploading an image to picasa
> > given a binary stream.
>
> > -Stefan
>
> > On 10/5/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> > > On Oct 5, 10:28 am, wsstefan <[EMAIL PROTECTED]> wrote:
> > > > With the new Javascript Calendar library it's possible to interact
> > > > with Picasa Web Albums because for the most part all it needs is the
> > > > base service.
>
> > > Correct.
>
> > > > The one problem I'm running into is that the base service has no POST
> > > > method exposed like most of the other client libraries, making it
> > > > impossible to add in image with this library thus far?
>
> > > There is getEntry, insertEntry, updateEntry and deleteEntry on
> > > Service. Which one is missing?
>
> > > > Or am I missing something?
>
> > > > If not, when can POST ???
>
> > > Jun
>
> > --
> > Draw online with other people at:
>
> >http://www.DrawAndShare.com
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Calendar Data API" 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-calendar-help-dataapi?hl=en
-~----------~----~----~----~------~----~------~--~---