Compartir contenido en FaceBook Android

Utilizo intención y Action.SEND para compartir mi mensaje personalizado en redes sociales como WhatsApp, twitter, Facebook y GMail. Todo está bien en Gmail y otras aplicaciones, excepto Facebook! ¿Cómo puedo personalizar mi código para compartir algo en Facebook también? Yo comparto en Facebook usando Facebook SDK sin ningún problema, pero quiero hacerlo usando una intención.

Esto es lo que uso:

Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, knowTitle+"Read the full article via MomsApp by EnfaMama A+ at http://meadjohnsonasia.com.my/mobileapp"); sendIntent.putExtra(Intent.EXTRA_SUBJECT, "I just read "+knowTitle); sendIntent.setType("*/*"); startActivity(Intent.createChooser(sendIntent, "Share Your Favorite Article")); 

Lo que hice fue en realidad interceptar el objetivo elegido de los intentantes, puedes hacerlo usando tu actionprovider. Digamos que creaste un elemento que con un onclick inicia la intención. Para ello, puede crear instancias de un proveedor de acciones para hacerlo. Este actionprovider puede tener un setOnShareTargetSelectedListener para interceptar cualquier intención que desee manejar de manera diferente (o no en absoluto ^^). Consulte el siguiente código para saber cómo configurar su actionprovider.

  actionProvider.setShareIntent(createShareIntent()); actionProvider.setOnShareTargetSelectedListener(new OnShareTargetSelectedListener(){ @Override public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) { if ("com.facebook.katana".equals(intent.getComponent().getPackageName()) && mfacebooksharer != null) { mfacebooksharer.shareStatus(subject, text); return true; } return false; } }); 

Siempre que el facebook es elegido, uso mi mfacebooksharer para manejar la intención y seguir la API de facebook. Por supuesto, que actionrpovider necesita tener una intención. (Al igual que usted quería trabajar con una intención). Utilizo el método siguiente para crear la intención.

  private Intent createShareIntent() { intentsetter.setIntentleave(true); Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, text); return shareIntent; } 

De acuerdo con las Políticas de plataforma de Facebook, no puede rellenar previamente el cuadro de diálogo compartido con Intent.EXTRA_TEXT . Por lo general se cree que es un error, pero como por un informe de errores presentado aquí y también, aquí , Facebook claramente menciona que este no es el caso (no es un error).

Puede leer más sobre sus Políticas de Plataforma específicamente, la Política de Plataforma IV.2

Cita de la Plataforma Política IV.2:

No debe pre-llenar ninguno de los campos asociados a los siguientes productos, a menos que el usuario genere manualmente el contenido anteriormente en el flujo de trabajo: Historias de flujo (parámetro user_message para Facebook.streamPublish y FB.Connect.streamPublish y parámetro de mensaje para la secuencia. Publicar), fotos (título), videos (descripción), notas (título y contenido), enlaces (comentario) y Jabber / XMPP.

Estos campos están destinados a que los usuarios se expresen. Pre-llenar estos campos erosiona la autenticidad de la voz del usuario.

La única manera de compartir historias de tu aplicación es integrando el SDK de Facebook, que según tu publicación ya podrás hacerlo con éxito. Esa es la única opción disponible (por desgracia).

Uso de Intent en Android, sólo puede compartir un vínculo sin texto:

 Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, "http://www.google.ca"); startActivity(Intent.createChooser(intent, "Share with")); 

Funcionará. Si quieres compartir texto y enlaces, debes usar el SDK de Facebook para Android: https://github.com/facebook/facebook-android-sdk

  • Fallo de inicio de sesión en la API de Facebook
  • El diálogo de inicio de sesión de Facebook desaparece después de la carga
  • Cómo detectar Error al buscar información del proveedor para el error com.facebook.katana.provider.PlatformProvider
  • Parse SDK Android - API de gráficos de Facebook v2.0
  • Facebook cómo enviar solicitud de autorización de solicitud a los amigos?
  • Android - facebook sdk La ventana de inicio de sesión desaparece
  • El diálogo de la parte posterior del facebook de la identificación del poste vuelve siempre null en androide
  • Android: ¿Cuál es la clase de diálogo compartido en Facebook SDK 4.x
  • Android Facebook SDK - Cómo consultar las notificaciones de Facebook
  • WebDialog compartir publicación en Facebook cuando el usuario elimina la aplicación de la configuración
  • Archivo default.realm no se muestra en el navegador de cromo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.