Integrating with Picnik turned out to be a breeze. I registered for the service and was immediately given an API key and granted access to their api. Importing an image was a breeze, I simply passed the URL for the image in the _import parameter (see their api).
After that was working, I added the _export_agent parameter specifying “browser”, and passed my own url for the _export parameter. This tells picnik that I want picnik to pass me a url of the image when the user clicks “export”. (The “export” button only shows if you pass export parameters. And the user has to click it when they are finished.)
So my request to picnik looks like the following:
http://www.picnik.com/service/?_apikey=<APIKEY>&_import=<url to image>&_export_agent=browser&_export=<my url to handle the completed image>
When the user clicks “export”, I receive the user back to my site (my url) and the path to the image is passed in the ?file=<url> parameter. A quick get_file_contents() PHP call loads the image data from picnik’s server! Voila!