Compartir la devolución de llamada no funciona con Facebook SDK 4 Android

Recientemente he cambiado mi aplicación a FB SDK 4.0 y tengo algunos problemas raros con el uso compartido. El diálogo de uso compartido funciona muy bien – Puedo compartirlo con la aplicación de Facebook y WebDialog. Sin embargo, después de compartir correctamente o no compartir mi devolución de llamada no funciona en absoluto, por lo que ni siquiera puedo mostrar un brindis o registrar nada. Así es como lo hago:

shareDialog.registerCallback(fbManager, new FacebookCallback<Sharer.Result>() { @Override public void onSuccess(Sharer.Result result) { // This doesn't work Toast.makeText(f.getActivity(), "You shared this post", Toast.LENGTH_SHORT).show(); } @Override public void onCancel() { } @Override public void onError(FacebookException e) { // This doesn't work e.printStackTrace(); } }); 

Incluso he intentado depurar la aplicación – sin efecto – este código ni siquiera fue llamado.

Entonces, ¿podrías señalarme qué estoy haciendo mal o qué me falta?

Actualizar

Ya que estoy usando una clase especial para trabajar con FB SDK, he aquí la parte de la misma:

 private static CallbackManager fbManager; public static CallbackManager init(Activity c) { if (!FacebookSdk.isInitialized()) { FacebookSdk.sdkInitialize(c); } return fbManager = CallbackManager.Factory.create(); } ... public static void share(final Fragment f, final String title, final String description, final String link) { ShareDialog shareDialog = new ShareDialog(f); shareDialog.registerCallback(fbManager, new FacebookCallback<Sharer.Result>() { @Override public void onSuccess(Sharer.Result result) { Toast.makeText(f.getActivity(), "You shared this post", Toast.LENGTH_SHORT).show(); } @Override public void onCancel() { } @Override public void onError(FacebookException e) { e.printStackTrace(); } }); shareDialog.show(f, composeContent(title, description, link)); 

Y aquí cómo se ve en fragmento:

  private CallbackManager callbackManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); callbackManager = FacebookHelper.init(getActivity()); } ... @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { callbackManager.onActivityResult(requestCode, resultCode, data); } private void publishStory() { FacebookHelper.share(this, "Title", getResources().getString(R.string.sharing_text), sharingLink); } 

Tienes que anular el método onActivityResult, Actualiza tu método como sigue,

 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); } 

No olvide anular:

 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); } 

Si se utiliza en Fragmento, también debe agregar:

 loginBtn = (LoginButton) view.findViewById(R.id.fb_login_button); loginBtn.setFragment(this); 

Usted necesita especificar A requestCode cuando usted registra un facebookcallback. shareDialog.registerCallback(**, **, requestCode);

Asegúrese de pasar el fragmento (en lugar de pasar la actividad) al crear el ShareDialog:

 // From within a fragment ShareDialog dialog = new ShareDialog(this); 

Entonces puedes dejar facebookCallbackManager.onActivityResult() dentro del método onActivityResult() tu fragmento.

  • Facebook SDK 4.0 LoginButton - setReadPermissions no funciona?
  • Error de "ANDROID_BUILD_SDK_VERSION" con Facebook SDK
  • ¿Cuál es la nueva implementación del diálogo de solicitudes de aplicaciones en Android Facebook SDK 4.0.1
  • Botón de inicio de Facebook personalizado - Android
  • La aplicación de Android con Facebook no funciona con la aplicación de Facebook instalada
  • Guardar información sobre el usuario de facebook para usar en otra actividad
  • Android, botón de inicio de sesión de Facebook causa bloqueo (SDK 4.0.0)
  • No se puede importar facebook-sdk 4.0.1
  • Facebook Deep Linking no funciona en Android
  • Error validating token de acceso: El usuario no ha autorizado la aplicación. Facebook SDK 4
  • Android Facebook 4.0 SDK Cómo obtener correo electrónico, fecha de nacimiento y sexo del usuario
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.