Primeros pasos con el SDK para Android

El SDK de Facebook para Android es la forma más sencilla de integrar una aplicación para Android con Facebook. Ofrece:

Dispones de dos formas de configurar tu aplicación para utilizar el SDK de Facebook:

  • Con el inicio rápido.
  • Configurando el proyecto con el SDK de Facebook.

Inicio rápido

Para obtener un identificador de aplicación de Facebook, configura los ajustes de la aplicación e importa el SDK de Facebook; a continuación, haz clic en el botón inferior y sigue las instrucciones.

Inicio rápido para Android

 

Guías relacionadas:

Configuración de Android Studio

Para utilizar el SDK de Facebook en un proyecto, añádelo como una dependencia de compilación e impórtalo.

1. Ve a Android Studio | "New Project" | "Minimum SDK".

2. Selecciona API 15: Android 4.0.3 o superior, y crea el proyecto.

3. Una vez creado el proyecto, abre your_app | build.gradle.

4. Añade el siguiente fragmento de código a la sección buildscript { repositories {}} del archivo build.gradle (Project):

mavenCentral() 

5. Añade el siguiente fragmento de código a la sección dependencies {} del archivo build.gradle (module: app) para compilar la última versión del SDK de Facebook:

compile 'com.facebook.android:facebook-android-sdk:[4,5)'

Cuando utilizas el SDK de Facebook, los eventos de la aplicación se registran automáticamente y se recopilan para Facebook Analytics, a no ser que desactives el registro automático de eventos. Si quieres obtener información más detallada sobre los datos recopilados y cómo desactivar el registro automático de eventos, consulta el apartado sobre el registro automático de eventos de la aplicación.

6. Compila el proyecto. Ya puedes importar com.facebook.FacebookSdk en la aplicación.

Añadir el identificador de aplicación de Facebook

A continuación, añade el identificador de aplicación de Facebook al archivo de cadenas del proyecto y actualiza el manifiesto de Android:

1. Abre el archivo strings.xml. Ruta de ejemplo: /app/src/main/res/values/strings.xml.

2. Añade una nueva cadena con el nombre facebook_app_id y el valor como identificador de aplicación de Facebook.

3. Abre AndroidManifest.xml.

4. Añade un elemento uses-permission al manifiesto:

<uses-permission android:name="android.permission.INTERNET"/>

5. Añade un elemento meta-data al elemento application:

<application android:label="@string/app_name" ...>
    ...
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    ...
</application>

Enviar imágenes o vídeos

Si vas a compartir enlaces, imágenes o vídeos a través de la aplicación de Facebook para Android, también debes declarar el elemento FacebookContentProvider en el manifiesto.

Añade el identificador de la aplicación al final del valor authorities. Por ejemplo, si el identificador de aplicación de Facebook es 1234, la declaración tendrá el siguiente aspecto:

<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
          android:name="com.facebook.FacebookContentProvider"
          android:exported="true" />

Usar el SDK con ProGuard

No es necesario que realices más acciones para utilizar ProGuard con el SDK de Facebook para Android. Si deseas obtener instrucciones sobre ProGuard, consulta Android Developer Site, Shrink Your Code and Resources (en inglés), donde encontrarás información para reducir el código y los recursos, en el sitio para desarrolladores de Android.

Ejecutar aplicaciones de muestra

El SDK incluye las siguientes muestras:

  • HelloFacebookSample: acceso al perfil, actualizaciones de estado y subida de fotos.
  • RPSSample: cuadro de diálogo de contenido compartido nativo, publicación en Open Graph, selectores, invitaciones y enlaces profundos.
  • Scrumptious: inicio de sesión, solicitudes, selectores, subida de imágenes y publicación en Open Graph.

Para experimentar con ellas, importa el SDK a un proyecto de Android Studio.

Las muestras tienen una dependencia de proyecto en lugar de una de repositorio central a través de Maven Central o jCenter. De este modo, cuando una copia local del SDK recibe actualizaciones, las muestras reflejan los cambios.

Para ejecutar aplicaciones de muestra rápidamente, puedes generar hashes de clave para tus entornos de desarrollo. Añade estos hashes a tu perfil de desarrollador de Facebook para las aplicaciones de muestra. El Java SE Development Kit (JDK) que instalaste como parte de la configuración del entorno de desarrollo incluye Keytool, una herramienta para generar hashes de clave. OpenSSL puede descargarse desde OpenSSL.

En OS X, ejecuta:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

En Windows, ejecuta:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64

Este comando genera una cadena de 28 caracteres.

Ve al sitio para desarrolladores de Facebook. Inicia sesión en Facebook y, en el menú desplegable situado en la parte superior derecha, ve a Configuración para desarrolladores:

En "Configuración para desarrolladores", selecciona Aplicación de muestra en el menú, añade el hash de clave en tu perfil y guárdalo:

Puedes añadir varios hashes de clave si utilizas varios equipos para desarrollar aplicaciones.

Ya puedes compilar y ejecutar todas las muestras, incluidas las que utilicen el inicio de sesión con Facebook.

Crear un hash de clave de desarrollo

Facebook utiliza el hash de clave para autenticar las interacciones entre tu aplicación y la de Facebook. Si ejecutas aplicaciones que utilicen el inicio de sesión con Facebook, tendrás que añadir el hash de clave de desarrollo de Android a tu perfil de desarrollador de Facebook.

Para la versión que publiques de tu aplicación, también tendrás que generar y configurar un hash de clave de activación.

Para obtener un hash de clave en OS X o Windows, genéralo o utiliza el valor que devuelve Settings.getApplicationSignature(Context). Para obtener instrucciones, consulta el apartado Ejecutar aplicaciones de muestra.


Siguientes pasos

Una vez que instales el SDK de Facebook para Android y configures un identificador de aplicación de Facebook, aparecerán los siguientes elementos:


Configurar un hash de clave de activación

Para autenticar el intercambio de información entre tu aplicación y la de Facebook, deberás generar un hash de clave de activación y añadirlo en la configuración de Android para el identificador de aplicación de Facebook. Sin este hash, puede que la integración con Facebook no funcione correctamente cuando publiques la aplicación en la tienda.

En un paso anterior, deberías haber actualizado tu configuración de desarrollador de Facebook con los hashes de clave de tus entornos de desarrollo.

Al publicar la aplicación, suele utilizarse una firma diferente a la del entorno de desarrollo. Por lo tanto, debes asegurarte de crear un hash de clave de activación y añadirlo en la configuración de Android para el identificador de aplicación de Facebook.

Para generar un hash de tu clave de activación, ejecuta el siguiente comando en Mac o Windows, sustituyendo el alias de la clave de activación y la ruta del almacén de claves. En OS X, ejecuta:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

En Windows, utiliza:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Asegúrate de usar la contraseña que estableciste la primera vez que creaste la clave de activación.

Este comando debería generar una cadena de 28 caracteres. Copia y pega este hash de clave de activación en la configuración de Android de tu identificador de aplicación de Facebook.

Asimismo, debes asegurarte de que la configuración de Android del identificador de aplicación de Facebook contenga el nombre de paquete correcto y la clase de actividad principal de tu paquete de Android.


Usar el SDK de Facebook con Maven

Puedes declarar la dependencia de Maven con la última versión disponible del SDK para Android:

<dependency>
  <groupId>com.facebook.android</groupId>
  <artifactId>facebook-android-sdk</artifactId>
  <version>PUT_LATEST_VERSION_HERE</version>
</dependency> 

Solución de problemas relacionados con aplicaciones de muestra

Si tienes un problema con una aplicación de muestra, es posible que esté relacionado con el hash de clave. Puede que se dé una de las siguientes situaciones:

  • Aparece un cuadro de diálogo de inicio de sesión nativo pero, tras aceptar los permisos, no consigues iniciar sesión. El logcat también contiene una excepción:
12-20 10:23:24.507: W/fb4a:fb:OrcaServiceQueue(504):
com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id
  • Se muestra un cuadro de diálogo de inicio de sesión no nativo con el mensaje de error ''...la aplicación no está configurada correctamente para el inicio de sesión con Facebook...''.

Comprueba el hash de clave y asegúrate de que estés utilizando el correcto. I

También puedes modificar manualmente el código de muestra para utilizar el hash de clave correcto. Por ejemplo, en la clase HelloFacebookSampleActivity, realiza un cambio temporal en el método onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.facebook.samples.hellofacebook", 
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {
        
    } catch (NoSuchAlgorithmException e) {
        
    }
    
    ...

Guarda los cambios y vuelve a ejecutar la muestra. Comprueba si la salida de logcat es un mensaje similar al siguiente:

12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=

Guarda el hash de clave en tu perfil de desarrollador. Vuelve a ejecutar las muestras y comprueba que puedas iniciar sesión correctamente.