Démarrer avec le SDK Android

Le SDK Facebook pour Android est le moyen le plus simple d’intégrer votre app Android à Facebook. Il permet d’utiliser les fonctionnalités suivantes :

La configuration de votre app pour utiliser le SDK Facebook peut se faire de deux manières :

  • en utilisant le démarrage rapide ;
  • en configurant votre projet avec le SDK Facebook.

Démarrage rapide

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

Démarrage rapide pour Android

 

Guides connexes :

Configuration d’Android Studio

Pour utiliser le SDK Facebook dans un projet, 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 ou une version plus récente, puis créez votre projet.

3. Après avoir créé un projet, ouvrez your_app | build.gradle.

4. Ajoutez l’extrait de code suivant à la section buildscript { repositories {}} du fichier build.gradle (Project) :

mavenCentral() 

5. Ajoutez l’extrait de code suivant à la section dependencies {} de votre fichier build.gradle (module: app) pour compiler la version la plus récente du SDK Facebook :

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

Lorsque vous utilisez le SDK Facebook, les é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.

6. Créez votre projet. À présent, vous pouvez importer com.facebook.FacebookSdk dans votre app.

Ajout de l’ID d’app Facebook

Ensuite, ajoutez votre ID d’app Facebook au fichier de chaînes de votre projet et actualisez votre manifeste Android :

1. Ouvrez votre fichier strings.xml. Exemple de chemin : /app/src/main/res/values/strings.xml.

2. Ajoutez une nouvelle chaîne avec le nom facebook_app_id et définissez-la comme votre ID d’app Facebook.

3. Ouvrez AndroidManifest.xml.

4. Ajoutez un élément uses-permission au manifeste :

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

5. Ajoutez un élément meta-data à l’élément application :

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

Envoi d’images ou de vidéos

Si vous partagez des liens, des images ou des vidéos via l’app Facebook pour Android, vous devez également déclarer FacebookContentProvider dans le manifeste.

Ajoutez votre ID d’app à la fin de la valeur authorities. Par exemple, si votre ID d’app Facebook est 1234, la déclaration ressemble à ceci :

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

Utilisation du SDK avec ProGuard

Aucune étape supplémentaire n’est requise afin d’utiliser ProGuard avec le SDK Facebook pour Android. Pour obtenir des instructions sur Proguard, consultez le site des développeurs Android et les sections Raccourcir votre code et Ressources.

Exécution d’échantillons d’apps

Les échantillons ci-dessous sont inclus dans le SDK :

  • HelloFacebookSample : affiche l’accès au profil, les mises à jour de statut et l’importation de photos.
  • RPSSample : permet d’utiliser la boîte de dialogue Partager native, les publications Open Graph, les sélecteurs, les invitations et les liens profonds.
  • Scrumptious : connexion, requêtes, sélecteurs, importations de photos et publications Open Graph.

Vous pouvez tester les différents échantillons en important le SDK dans un projet Android Studio.

Les échantillons font l’objet d’une dépendance de projet plutôt que d’une dépendance référentielle centrale via maven central ou jcenter. Cela signifie que lorsqu’une copie locale du SDK est mise à jour, les échantillons reflètent également ces changements.

Pour exécuter rapidement des échantillons d’apps, vous pouvez générer des clés de hachage pour vos environnements de développement. Ajoutez-les à votre profil de développeur Facebook pour les échantillons d’apps. Keytool, qui permet de générer les clés de hachage, est inclus avec le Java SE Development Kit (JDK) que vous avez installé dans le cadre de la configuration de votre environnement de développement. OpenSSL est disponible au téléchargement depuis OpenSSL.

Sous OS X, exécutez :

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

Sous Windows, exécutez :

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

Cette opération génère une chaîne de 28 caractères.

Accédez au site des développeurs 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 développeur, sélectionnez Échantillon 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 maintenant compiler et exécuter l’ensemble des échantillons, 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 app et l’app 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 Facebook.

Vous devez également générer une clé de hachage de publication et la configurer pour la version de votre app 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 Exécution d’échantillons d’apps.


Étapes suivantes

Dès lors que vous avez installé le SDK Facebook pour Android et configuré un ID d’app Facebook, vous avez accès aux fonctionnalités suivantes :


Configuration d’une clé de hachage de publication

Pour authentifier les échanges d’informations entre votre app et l’app 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 avec Facebook risque de ne pas fonctionner correctement lorsque vous publierez votre app dans la boutique.

Dans l’une des étapes ci-dessus, vous devez avoir modifié vos paramètres de développeur Facebook et ajouté des clés de hachage pour vos environnements de développement.

Lorsque vous publiez votre app, celle-ci est généralement signée avec une signature différente vers 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’app Facebook.

Pour générer un hachage de votre clé de publication, exécutez la commande ci-dessous sous Mac ou Windows, qui sert à remplacer votre alias de clé de publication et le chemin vers votre keystore. Sous OS X, exécutez :

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

Sous Windows, utilisez :

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

Assurez-vous d’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.

Nous vous conseillons également de vérifier que les paramètres Android de votre ID d’app Facebook contiennent le bon nom de package ainsi que la classe de l’activité principale pour votre package Android.


Utilisation du SDK Facebook avec Maven

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

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

Dépannage d’échantillons d’apps

Si vous rencontrez des difficultés pour exécuter un échantillon d’app, 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 apparaît à l’écran, mais vous êtes toujours déconnecté après avoir accepté les autorisations. 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 apparaît à l’écran avec un message d’erreur : « 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’échantillon de code pour utiliser la bonne clé de hachage. Dans la classe HelloFacebookSampleActivity, vous pouvez, par exemple, apporter un changement provisoire à 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 et exécutez à nouveau l’échantillon. Vérifiez les résultats de votre logcat. Un message similaire à celui ci-dessous devrait s’afficher :

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

Enregistrez la clé de hachage dans votre profil de développeur. Exécutez à nouveau les échantillons et vérifiez que vous parvenez à vous connecter.