I am trying to post the image on Facebook using Graph api. I have converted the image into byte array and tried to post it , But i failed. Its shows the text posted on wall but the Image is not posting. I don't know what is wrong.
I already checked the below available solutions of SO ,but none of them worked for me.
1) How to post image from drawable folder to facebook with graph api?
2)Unable to post an image from drawable to facebook
3)Post image with text on facebook from android
4)Android photo upload to facebook using graph api?
Here is the code which i am trying.
private void publishFeedDialog() {
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(),
R.drawable.ic_launcher);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitMapData = stream.toByteArray();
final Bundle params = new Bundle();
params.putString("name", "Test FB Post.");
params.putString("method", "photos.upload");
params.putByteArray("picture", bitMapData);
//Tried below code but not working.
/*try {
String response = mFacebook.request("me/photos", params, "POST");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(m_context,
Session.getActiveSession(), params)).setOnCompleteListener(
new OnCompleteListener() {
@Override
public void onComplete(Bundle values,
FacebookException error) {
if (error == null) {
// When the story is posted, echo the success
// and the post Id.
final String postId = values.getString("post_id");
if (postId != null) {
Toast.makeText(m_context,
"Posted story, id: " + postId,
Toast.LENGTH_SHORT).show();
finish();
} else {
// User clicked the Cancel button
Toast.makeText(m_context, "Publish cancelled",
Toast.LENGTH_SHORT).show();
}
} else if (error instanceof FacebookOperationCanceledException) {
// User clicked the "x" button
Toast.makeText(m_context, "Publish cancelled",
Toast.LENGTH_SHORT).show();
} else {
// Generic, ex: network error
Toast.makeText(getApplicationContext(),
"Error posting story", Toast.LENGTH_SHORT)
.show();
}
}
}).build();
feedDialog.show();
}
Please guide me. Any help will be appreciated.
Thanks