Sunday, September 1, 2013

Upload photo's to facebook(Web, Mobile) using javascript

It is really a hard job to find out how to upload pictures to Facebook. It took days for me to analyze and find-out how one can upload pictures to Facebook with the need of their JavaScript API. Here you go.imageData the variable used here is the base64 format of image.
try{
   blob = dataURItoBlob(imageData,mimeType);
}catch(e){console.log(e);}
var fd = new FormData();
fd.append("access_token",accessToken);
fd.append("source", blob);fd.append("message","Kiss");
try{
   $.ajax({
      url:"https://graph.facebook.com/" + <<userID received on getting user details>> + "/photos?access_token=" + <<user accessToken>>,
      type:"POST"
      data:fd,
      processData:false,
      contentType:false,
      cache:false,
      success:function(data){
         console.log("success " + data);
      },
      error:function(shr,status,data){
         console.log("error " + data + " Status " + shr.status);
      },
      complete:function(){
         console.log("Ajax Complete");
      }
   });

}catch(e){console.log(e);}

function dataURItoBlob(dataURI,mime) {
   // convert base64 to raw binary data held in a string
   // doesn't handle URLEncoded DataURIs

   var byteString = window.atob(dataURI);

   // separate out the mime component


   // write the bytes of the string to an ArrayBuffer
   //var ab = new ArrayBuffer(byteString.length);
   var ia = new Uint8Array(byteString.length);
   for (var i = 0; i < byteString.length; i++) {
      ia[i] = byteString.charCodeAt(i);
   }

   // write the ArrayBuffer to a blob, and you're done
   var blob = new Blob([ia], { type: mime });

   return blob;
}

No comments:

Post a Comment