Premiers pas avec le SDK Facebook pour Android

Cette documentation explique comment commencer à intégrer votre application Android à Facebook à l’aide du SDK Facebook pour Android. La version actuelle du SDK Facebook pour Android est la version 12.0.0 et nécessite l’API Android niveau 15. Pour en savoir plus sur les versions et les fonctionnalités, consultez la page SDK Facebook pour Android.

Lorsque vous utilisez le SDK Facebook, certains évènements dans votre app sont automatiquement consignés et collectés pour Facebook Analytics, à moins de désactiver la consignation automatique des évènements. Pour en savoir plus sur les informations collectées et sur la façon de désactiver la consignation automatique des évènements, consultez la section Consignation automatique des app events.

Vous pouvez configurer votre application pour l’utilisation du SDK Facebook pour Android de deux manières :

  • en suivant la procédure de démarrage rapide ;
  • en configurant votre projet avec le SDK Facebook pour Android.

Démarrage rapide

Pour obtenir un ID d’app Facebook, configurez les paramètres de votre application, importez le SDK Facebook pour Android, puis cliquez sur le bouton ci-dessous et suivez les instructions en ligne.

Démarrage rapide pour Android

Avant de commencer

Vous aurez besoin des éléments suivants :

Présentation de l’autorisation ID publicitaire

À compter de la version 13.0.0, l’autorisation ID publicitaire est automatiquement ajoutée à chaque application que vous créez à l’aide du SDK Facebook pour Android. Pour plus d’informations, consultez la page Identifiant publicitaire - Aide Console Play.

Dans certains cas, vous pouvez choisir de désactiver l’inclusion de l’autorisation ID publicitaire dans votre application. Par exemple, si les utilisateur·ices de votre application sont des enfants et des familles, l’autorisation ID publicitaire n’est peut-être pas pertinente. Pour exclure l’autorisation ID publicitaire de votre application, suivez les instructions fournies dans la suite de cette documentation.

Configuration d’Android Studio

Création de votre projet

Pour utiliser le SDK Facebook dans un projet Android Studio, ajoutez-le comme dépendance de version et importez-le.

  1. Accédez à Android Studio | Nouveau projet | SDK minimum.

  2. Sélectionnez API 15 : Android 4.0.3 (IceCreamSandwich) ou une version ultérieure, puis créez votre projet.

  3. Ouvrez le fichier Gradle Scripts | build.gradle (Project: <your_project>), puis ajoutez-y la chaîne suivante :

    mavenCentral()
    
  4. Enregistrez et fermez le fichier build.gradle (Project: <your_project>).

  5. Ouvrez le fichier Gradle Scripts | build.gradle (Module: app), puis ajoutez-y la chaîne suivante sous la section dependencies :

    implementation 'com.facebook.android:facebook-android-sdk:latest.release'
    

  6. Enregistrez et fermez le fichier build.gradle (Module: app).

  7. Créez votre projet. Vous pouvez à présent importer com.facebook.FacebookSdk dans votre application.

Mise à jour de votre manifeste

Ajoutez votre ID d’app et votre token client au fichier de chaînes de votre projet et mettez à jour le fichier manifeste. Procédez comme suit :

  1. Ouvrez le fichier /app/res/values/strings.xml dans votre projet d’application.

  2. Ajoutez les éléments string avec les noms facebook_app_id et facebook_client_token, puis définissez les valeurs sur votre ID d’app et votre token client. Par exemple, si votre ID d’app est 1234 et que votre token client est 56789, votre code ressemble à ce qui suit :

    <string name="facebook_app_id">1234</string><string name="facebook_client_token">56789</string>
  3. Ouvrez le fichier /app/manifests/AndroidManifest.xml dans votre projet d’application.

  4. Ajoutez les éléments meta-data à l’élément application pour votre ID d’app et votre token client :

    <application android:label="&#064;string/app_name" ...>
        ...
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/><meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
        ...
    </application>
  5. Ajoutez un élément uses-permission au manifeste après l’élément application :

    <uses-permission android:name="android.permission.INTERNET"/>
  6. (Facultatif) Pour désactiver l’autorisation ID publicitaire, ajoutez un élément uses-permission au manifeste après l’élément application :

    <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
  7. Créez votre projet.

Activation du partage

Si vous partagez des liens, des images ou des vidéos à partir de votre application, déclarez l’autorité FacebookContentProvider dans le manifeste. Procédez comme suit :

  1. Ouvrez le fichier /app/manifests/AndroidManifest.xml dans votre projet d’application.

  2. Ajoutez un élément provider au manifeste pour l’autorité FacebookContentProvider. Ajoutez votre ID d’app à la fin de la valeur authorities. Par exemple, si votre ID d’app est 1234, la déclaration ressemble à ceci :

    <provider android:authorities="com.facebook.app.FacebookContentProvider1234"
        android:name="com.facebook.FacebookContentProvider"
        android:exported="true" />
    
  3. Créez votre projet.

Exécution des exemples d’applications

Le SDK Facebook pour Android inclut les exemples suivants :

  • HelloFacebookSample : démonstration de l’accès au profil, des mises à jour de statut et de l’importation de photos.

Vous pouvez tester ces différents exemples en important le SDK Facebook dans un projet Android Studio. Les exemples présentent une dépendance de projet plutôt qu’une dépendance de référentiel central via maven central ou jcenter. Cela signifie que lorsqu’une copie locale du SDK est mise à jour, les exemples reflètent également ces changements.

Pour exécuter rapidement les exemples d’applications, vous pouvez générer des clés de hachage pour vos environnements de développement. Ajoutez ces clés à votre profil de développeur·se Facebook pour les exemples d’applications. Keytool, qui permet de générer les clés de hachage, est fourni avec le kit Java SE Development Kit (JDK) que vous avez installé dans le cadre de la configuration de votre environnement de développement. OpenSSL est téléchargeable depuis OpenSSL.

Sous OS X, exécutez la commande suivante :

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

Sous Windows, vous aurez besoin des éléments suivants :

Exécutez la commande suivante à partir d’une invite de commandes dans le dossier SDK Java. Cette opération génère une chaîne de 28 caractères.

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

Accédez au site des développeur·ses Facebook. Connectez-vous à Facebook et accédez aux Paramètres développeur à l’aide du menu déroulant situé en haut à droite :

Dans vos paramètres de développement, sélectionnez Exemple d’app dans le menu, puis ajoutez votre clé de hachage à votre profil et enregistrez-la :

Vous pouvez ajouter plusieurs clés de hachage si vous développez sur plusieurs machines.

Vous pouvez à présent compiler et exécuter l’ensemble des exemples, notamment ceux qui utilisent Facebook Login.

Création d’une clé de hachage de développement

Facebook utilise la clé de hachage pour authentifier les interactions entre votre application et l’application Facebook. Si vous exécutez des applications qui utilisent Facebook Login, vous devez ajouter votre clé de hachage de développement Android à votre profil de développeur·se Facebook.

Vous devez également générer et configurer une clé de hachage de publication pour la version de votre application que vous publiez.

Sous OS X ou Windows, vous pouvez récupérer une clé de hachage en la générant ou en utilisant la valeur renvoyée par Settings.getApplicationSignature(Context). Pour obtenir des instructions, consultez la section Exécution des exemples d’applications.

Création d’une clé de hachage de publication

Pour authentifier les échanges d’informations entre votre application et l’application Facebook, vous devez générer une clé de hachage de publication et l’ajouter aux paramètres Android de votre ID d’app Facebook. Sinon, l’intégration à Facebook risque de ne pas fonctionner correctement lorsque vous publierez votre application dans la boutique.

Durant l’une des étapes ci-dessus, vous devez avoir mis à jour vos paramètres développeur Facebook avec les clés de hachage pour vos environnements de développement.

Lorsque vous publiez votre application, elle est généralement signée avec une signature différente dans votre environnement de développement. Par conséquent, nous vous conseillons de créer une clé de hachage de publication et de l’ajouter aux paramètres Android de votre ID d’application Facebook.

Pour générer un hachage de votre clé de publication, exécutez la commande ci-dessous sous Mac ou Windows en y substituant votre alias de clé de publication et le chemin vers votre keystore.

Sous Mac OS, exécutez la commande suivante :

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

Sous Windows, vous aurez besoin des éléments suivants :

Exécutez la commande suivante à partir d’une invite de commandes dans le dossier SDK Java :

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

Veillez à utiliser le mot de passe que vous avez défini la première fois que vous avez créé votre clé de publication.

Cette commande doit générer une chaîne de 28 caractères. Copiez et collez cette clé de hachage de publication dans les paramètres Android de votre ID d’app Facebook.

Vous devez également vérifier que les paramètres Android de votre ID d’app Facebook contiennent le nom de package et la classe d’activité principale appropriés pour votre package Android.

Utilisation du SDK Facebook pour Android avec Maven

Vous pouvez déclarer la dépendance Maven avec la dernière version disponible du SDK Facebook pour Android.

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

Résolution des problèmes relatifs aux exemples d’applications

Si vous rencontrez des difficultés pour exécuter un exemple d’application, le problème vient peut-être de la clé de hachage. Vous pouvez être confronté à l’un des scénarios suivants :

  • Une boîte de dialogue Login native s’affiche, mais vous êtes toujours déconnecté après avoir accepté les autorisations. Le logcat contient également une exception :
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
  • Une boîte de dialogue Login non native s’affiche avec un message d’erreur du type : « L’application n’est pas configurée correctement pour Facebook Login… ».

Assurez-vous d’utiliser la bonne clé de hachage. I

Vous pouvez également modifier manuellement l’exemple de code pour utiliser la bonne clé de hachage. Par exemple, dans la classe HelloFacebookSampleActivity, vous pouvez modifier provisoirement 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) {
        
    }
    
    ...

Enregistrez vos modifications, puis réexécutez l’exemple. Vérifiez que la sortie de votre logcat affiche un message semblable à celui-ci :

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

Enregistrez la clé de hachage dans votre profil de développeur·se. Réexécutez les exemples et vérifiez que vous parvenez à vous connecter.