Preguntas frecuentes y solución de problemas del SDK de Facebook para Android

Preguntas frecuentes

En Android 11, puedes agregar el siguiente bloque de queries al archivo AndroidMainfest.xml del proyecto para solucionar el problema:

<manifest package="com.example.app">
    <queries>
        <provider android:authorities="com.facebook.katana.provider.PlatformProvider" />
    </queries>
    ...
</manifest>

Puedes usar un identificador de la aplicación de Facebook con varias aplicaciones para Android. Basta con que utilices el mismo identificador de la aplicación en otra aplicación para iniciar sesión, compartir contenido, etc.

Para crear enlaces profundos y abrir tu aplicación a través de notificaciones y otros medios, solamente admitimos una única combinación de nombre de paquete y nombre de clase.

Si quieres crear enlaces profundos con varias aplicaciones, consulta App Links.

Puedes reemplazar cadenas en el SDK de Facebook para Android si proporcionas una traducción para la configuración regional que prefieres en tu propio archivo "strings.xml".

El archivo "strings.xml" que está en el directorio "facebook/res/values/" contiene todas las cadenas que utiliza el SDK. El nombre de los recursos de cadena debe ser explicativo.

Para obtener más información, consulta Guía para desarrolladores de Android: localizar con recursos.

Cada versión del SDK de Facebook para Android con el cuadro de diálogo de contenido compartido nativo incluye también un APK para la aplicación de Facebook.

Este APK se incluía en la descarga del SDK hasta la versión 3.14.1. Ahora se descarga por separado. Puedes encontrar los APK en nuestra página de descargas.

Simplemente instala el APK de Facebook en tu emulador o dispositivo de Android y prueba el cuadro de diálogo de contenido compartido nativo desde tu aplicación.

Normalmente, las bibliotecas de Android pueden utilizar "BuildConfig.DEBUG" para determinar si la aplicación se encuentra en modo de depuración. Sin embargo, debido a un [error en Gradle] (https://code.google.com/p/android/issues/detail?id=52962), las bibliotecas de Android vienen siempre con "DEBUG" configurado como "false". Como solución alternativa, hay un método "FacebookSdk.setIsDebugEnabled(boolean)" que te permite configurar el modo de depuración directamente desde tu aplicación. Así, el registro de depuración se activa desde el SDK.

También puedes configurar comportamientos de registro con "FacebookSdk.addLoggingBehavior(LogginBehavior)" para registrar diferentes categorías de mensajes. Consulta la referencia del SDK para Android: comportamiento de registro.

El cuadro de diálogo de contenido compartido devuelve llamadas a "onSuccess" y "onCancel" tras una acción del usuario.

  • A "onSuccess" cuando el usuario comparte contenido correctamente. Además, aparece un "postId" en la clase "Sharer.Result" si el usuario le concedió a la aplicación permisos "publish_actions". Si el usuario no accedió mediante el inicio de sesión con Facebook, también se llamará a este método si el usuario hace clic en Cancelar.
  • A "onCancel" cuando alguien hace clic en el botón "x" del cuadro de diálogo de contenido compartido, o bien si accedió mediante el inicio de sesión con Facebook y hace clic en Cancelar.

Solución de problemas

Cuando solicites permisos de publicación, es posible que obtengas un error relacionado con uno de los siguientes escenarios:

  • Sesión: se intentó solicitar nuevos permisos para una sesión con una solicitud pendiente.
  • Se intentó autorizar con una solicitud pendiente.

Este mensaje de error indica que tu aplicación está intentando solicitar nuevos permisos antes de que se complete la solicitud anterior. Todas las solicitudes de permisos son asincrónicas, por lo que no puedes solicitar nuevos permisos hasta que se complete la solicitud anterior.

Consulta las aplicaciones de ejemplo que proporcionamos con el SDK, como Scrumptious o Hello Facebook, para obtener información sobre cómo solicitar nuevos permisos en varios pasos.

Si no hay ningún error en los registros, probablemente no se ejecutó la solicitud. Para ejecutar el objeto "GraphRequest", llama al método "executeAsync".

Para iniciar sesión o utilizar los cuadros de diálogo de contenido compartido nativos, debes indicarle a Facebook la clave que utilizas para firmar tus aplicaciones.

Se trata de un hash SHA-1 de la clave utilizada para firmar tu aplicación. Suelen utilizarse dos claves diferentes: una para el desarrollo y la depuración, y otra para el lanzamiento. Comprueba que se agreguen ambos valores en la página de configuración de tu aplicación.

Para obtener más información, consulta Primeros pasos con el SDK para Android: crear un hash de clave de desarrollo.

La causa más habitual es que no configuraste un "ContentProvider" en tu "AndroidManifest.xml". Asegúrate de agregarlo a tu archivo "AndroidManifest.xml" con el identificador de la aplicación. Consulta Uso compartido en Android: requisitos previos.