Facebook share – Textos que faltan
Problema original
Hice un poco más de investigación, ver la información en la parte inferior de la publicación. ¡Gracias!
Tengo una aplicación de Android, con opción de compartir de Facebook. Hice la parte de uso compartido de la aplicación principalmente del tutorial sobre Fb. Dev. Sitio, consulte: https://developers.facebook.com/docs/android/share
- Cómo utilizar el Facebook Graph Api Cursor basado en la paginación
- Marcador de Facebook Las llamadas de la API de Android no muestran puntuaciones altas en Timeline / ticker
- ¿Cómo puedo obtener la lista de amigos de FaceBook?
- Crear una solicitud en Facebook SDK 4 (Android)
- Feed de noticias de la pared de facebook a una aplicación para Android
Aquí está el código real:
Request.newMeRequest(session, new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { Bundle postParams = new Bundle(); String name = String.format(getResources().getString(R.string.shareFacebook_title), user.getName(), petName); String caption = String.format(getResources().getString(R.string.shareFacebook_caption)); String description = String.format(getResources().getString(R.string.shareFacebook_description), user.getName(), petName, shelterName); postParams.putString("name", name); postParams.putString("caption", caption); postParams.putString("description", description); postParams.putString("link", getResources().getString(R.string.shareFacebook_url)); postParams.putString("picture", petPicUrl); Request request = new Request(session, "me/feed", postParams, HttpMethod.POST); RequestAsyncTask task = new RequestAsyncTask(request); task.execute(); } }).executeAsync();
Mi problema es que el enlace compartido no tiene todos los textos, lo pongo en el bundle
. Ver la foto:
Cuando ejecuto el depurador, y depurar en la aplicación, todos los postParams
funciona bien, y el Bundle
tiene todos los textos, pero el compartimiento se ve igual (y no tiene todos los textos).
El Bundle
lanza algunas ClassNotFoundExceptions
inesperadas, pero creo que es un error en el IDE, vea esta pregunta de SO .
Los textos que faltan no son los mismos de todos los teléfonos. De algunos teléfonos, la foto missis también, pero estoy seguro, que la URL es correcta.
Sé, que esto funcionó 2-3 semanas atrás, y nadie tocó este código hasta hoy.
¿Puede usted ayudarme, qué está causando el problema?
¡Gracias!
Editar
He intentado el Explorador de Graph API de Facebook, para enviar la misma consulta, y tengo el mismo resultado (textos faltantes, etc).
Aquí está la consulta:
¿Es posible que el Graph API esté mal / roto? ¿Ha cambiado en las últimas semanas? La página de estado indica que el API es saludable.
Editar # 2
Ok, así que si quiero compartir cualquier enlace, thoose atributos funciona. Pero si quiero compartir un enlace a Google Play, los atributos dejan de funcionar.
- Error de Android aleatoriamente java.lang.NoClassDefFoundError: com.facebook.internal.Utility
- Cómo obtener la foto del perfil de Facebook en Facebook SDK Android
- No se puede obtener "cuenta" en los campos "me gusta" y "comentarios" usando el acceso_token de mi propia aplicación registrada
- Java / Android: Obtener información de usuario de Facebook desde Graph Api, mostrar en TextView
- Facebook deep link siempre abre Google Play Store
- Álbum de Facebook y fotos no accesibles con todos los permisos necesarios (GRAPH API)
- Ejecución de múltiples instancias de la misma aplicación en kitkat android
- Nombre del paquete y clase Nombre de la aplicación de Facebook
Probablemente eso causó mi problema, que Google Play Store define las etiquetas oauth en el código, por lo que FB analiza esas etiquetas en lugar de mi contenido.
La mejor solución, encontré, era vincular a un sitio en blanco, desde donde redirigí a mis usuarios con JavaScript.
En lugar de usar Facebook dialoug
private void publishFeedDialog() { Bundle params = new Bundle(); 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(); }