No se puede publicar una imagen de drawable a facebook

Estoy intentando pasar una imagen de la carpeta drawables al diálogo feed. Pero no puedo ver la imagen en el diálogo de feed de Facebook. El resto de los parámetros están disponibles. Estoy usando facebook SDK 3.5. Esta es la función para mostrar el diálogo de feed.

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(); Bundle params = new Bundle(); params.putByteArray("picture", bitMapData); params.putString("name", "Facebook SDK for Android"); params.putString("caption", "Build great social apps and get more installs."); params.putString("description", "The Facebook SDK for Android makes it easier and faster to develop Facebook integrated Android apps."); params.putString("link", "https://developers.facebook.com/android"); //params.putString("picture", "https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png"); WebDialog feedDialog = ( new WebDialog.FeedDialogBuilder(getActivity(), 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(getActivity(), "Posted story, id: "+postId, Toast.LENGTH_SHORT).show(); } else { // User clicked the Cancel button Toast.makeText(getActivity().getApplicationContext(), "Publish cancelled", Toast.LENGTH_SHORT).show(); } } else if (error instanceof FacebookOperationCanceledException) { // User clicked the "x" button Toast.makeText(getActivity().getApplicationContext(), "Publish cancelled", Toast.LENGTH_SHORT).show(); } else { // Generic, ex: network error Toast.makeText(getActivity().getApplicationContext(), "Error posting story", Toast.LENGTH_SHORT).show(); } } }) .build(); feedDialog.show(); } 

Publicar feed funcionará sólo con url a imagen.

Vea la propiedad picture en la documentación de feed: https://developers.facebook.com/docs/reference/dialogs/feed/

Si quieres publicar una imagen de tu memoria (como una carpeta dibujable), entonces necesitas usar: Request.newUploadPhotoRequest()

Además, puede utilizar esta biblioteca de código abierto simple que admite SDK 3.5 para realizar acciones como publicar fotos, feed, etc. de una manera muy sencilla: https://github.com/sromku/android-simple-facebook

ACTUALIZAR

Opción 1
Puede utilizar Request.newUploadPhotoRequest() , pero este método no le permite agregar ninguna propiedad adicional, excepto la propia imagen.

 Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(),R.drawable.ic_launcher); Request.newUploadPhotoRequest(Session.getActiveSession(), bitmap , new Request.Callback() { @Override public void onCompleted(Response response) { // ... handle the response... } }); 

opcion 2
Si desea agregar propiedades adicionales a la imagen como descripción, haga casi lo mismo, pero con la llamada de api de gráfico en bruto. La implementación de Request.newUploadPhotoRequest() facebook hace exactamente lo mismo pero sin establecer propiedades adicionales.

 Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(),R.drawable.ic_launcher); Bundle params = new Bundle(); params.putParcelable("picture", bitmap); params.putString("message", "This is the description of the image"); params.putString("place", "1235456498726"); // place id of the image Request request = new Request(session, "me/photos", bundle, HttpMethod.POST, new Request.Callback() { @Override public void onCompleted(Response response) { // ... handle the response... } }); RequestAsyncTask task = new RequestAsyncTask(request); task.execute(); 
  • Cerrar sesión Facebook Android SDK
  • ¿Cómo manejar los errores de la API en la aplicación de Android usando Facebook 3.0 SDK?
  • No se puede reloginar con las credenciales de Facebook después de cerrar la sesión
  • Autenticación de Facebook en mi servidor con Android
  • Cómo obtener la foto de Facebook, el nombre completo, el género usando Facebook SDK android
  • ¿Cómo puedo añadir facebook SDK al proyecto android?
  • Facebook Android SDK 3.0 siempre devuelve ABRIR al iniciar sesión
  • Incapaz de construir el proyecto de Android con SDK de Facebook contra Android 2.2 (Froyo)
  • Uso del API de logro de Facebook en Android
  • Android facebook sdk publicar la alimentación a la línea de tiempo del usuario
  • Openssl no se reconoce como un comando interno o externo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.