GAE / J: Como POSTAR uma mensagem MIME de várias partes do appengine para o facebook

Quero postar uma foto (armazenada no appengine db) no faceboo

Para testar, tenho o entendimento básico localmente: estivebem sucedid com este formulário:

<form action="https://graph.facebook.com/7378294228/photos?access_token=AAAAAJPBSAzcBALmz7GOLZCER7Pc2347WQIDIlIFR8e2imWUzeuCKRLrXjAqR6zjaUb4laqkLtJlQlYa7X5ZBd2aNJoLom8M7IlvHfw39QZDZD" method="POST" enctype="multipart/form-data">
<input type="file" name="source" id="source"/>
<input type="text" name="message" value="mymess"/>
<input type="Submit"/>
</form>

(Peguei o access_token de uma sessão recente para fazer isso funcionar.)

Aqui está o que eu tentei no appengine sem sucesso tão longe

MultipartEntity mpEntity  = new MultipartEntity();
ContentBody cbFile = new ByteArrayBody(imageBytes, "image/jpeg", "w.jpg");
mpEntity.addPart("source", cbFile);

URL url = new URL("https://graph.facebook.com/"+albumUpload.getAlbumID()+"/photos?access_token="+albumUpload.getAuthToken());                   
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");

mpEntity.writeTo(connection.getOutputStream());

if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
   System.err.println("http success!");
}else{
   System.err.println("http failed:"+connection.getResponseCode());
}

Recebo um HTTP 400 - Solicitação incorreta.

Adicionei-os para garantir que estava fazendo algo:

System.out.println("mpEntity image content length: "+cbFile.getContentLength());
System.out.println("mpEntity content type:"+mpEntity.getContentType());

o que resulta em

mpEntity image content length: 786145 
mpEntity content type:Content-Type: multipart/form-data; boundary=oMiJCBHGVvZmU7s3FcUGXMbyU23aX_Ow 

Os únicos exemplos que posso encontrar do uso MultipartEntity on-line estão usando setEntity () do HttpClient, pois, como tal, não se aplicam, pois esse é um URLFetch no aplicativo app.

brigado por qualquer ajuda / códig

questionAnswers(1)

yourAnswerToTheQuestion