Tutoriel – Connexion à un compte Facebook via Android

16 août 2016 / Tutoriel / 1 commentaire

Intégrer la connexion Facebook à vos applications Android !

Création de l'ID

C'est parti ! Allez à l'adresse de Facebook developers et cliquez sur le bouton pour créer une nouvelle app. Rentrez ensuite les informations et créez un ID d’app.

tuto-facebook-debut-formulaire

Vous avez ainsi créé votre application et un ID unique lui a été attribué (pensez à garder cet ID pour la suite). Nous allons maintenant aller dans Paramètres → Général et cliquez sur ajouter une plateforme et sélectionner Android.

tuto-facebook-gestion-app

Un nouveau formulaire vient d'apparaître. Rentrez le nom du package de votre app et l’activité dans laquelle vous souhaitez utiliser la connexion Facebook. Pour remplir le 3ème champ "hachages clés", nous allons utiliser keytool et une clé debug.keystore qui se trouve à cette location :

~/.android/debug.keystore

 Le tout va nous générer notre HashKey, voici la ligne de commande :

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

 Comme vous pouvez le voir j’utilise openssl, si vous ne le possédez pas il peut être téléchargé facilement sur internet.

Si vous n’avez pas mis en place vos variables d’environnement, vous pouvez très bien indiquer directement le chemin ainsi :

"C:\Program Files\Java\jdk1.8.0_92\bin\keytool.exe" -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:\OpenSSL-Win32\bin\openssl.exe" sha1 -binary | "C:\OpenSSL-Win32\bin\openssl.exe" base64

 Une fois la ligne de commande exécutée copier-coller la HashKey et activer l’authentification unique.

tuto-facebook-fin-formulaire

Nous en avons fini avec la partie Facebook developers, passons maintenant à Android Studio.

Intégration du SDK

Tout d’abord nous allons ajouter le SDK de Facebook à notre application. Il est disponible sur Maven Central, nous allons donc ajouter ce dépôt à notre projet :

repositories {
    mavenCentral()
}

Maintenant, nous allons pouvoir ajouter le SDK à notre liste de dépendances :

compile 'com.facebook.android:facebook-android-sdk:4.5.0'

Nous allons maintenant pouvoir utiliser le bouton de connexion de Facebook, ajoutez le à votre fichier XML :

<com.facebook.login.widget.LoginButton
    android:id="@+id/login_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"/>

D'abord, dans votre activité, nous allons initialiser le SDK de Facebook :

FacebookSdk.sdkInitialize(getApplicationContext());

Attention : L’initialisation du SDK doit être effectuée avant votre SetContentView();

Ensuite, nous allons ajouter un CallbackManager :

private CallbackManager callbackManager;

 Puis l’initialiser :

callbackManager = CallbackManager.Factory.create();

 Nous allons pouvoir maintenant déclarer le bouton :

LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);

 C’est l’heure de créer notre callback. Il va nous permettre de récupérer le résultat de la connexion et de lui assigner différentes méthodes :

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        // Connection réussi
    }

    @Override
    public void onCancel() {
        // Connection annulée
    }

    @Override
    public void onError(FacebookException e) {
        // Erreur de connexion
    }
});

 Concrètement, lorsque vous allez appuyer sur le bouton, une nouvelle activité fournie par Facebook va être lancée et va retourner un résultat. Pour recevoir et conserver ce résultat, nous allons devoir réécrire onActivityResult et lui passer onActivityResult de notre CallbackManager :

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

 Encore un effort, nous arrivons au bout du tutoriel, ajouter l’ID de votre App Facebook dans le fichier "strings.xml" :

<string name="facebook_app_id">123456908761030</string>

 Nous allons maintenant ajouter l’ID de l’App en meta-data dans le "AndroidManifest.xml" :

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

 Ajoutez également l’activité que Facebook utilise pour la connexion :

<activity android:name="com.facebook.FacebookActivity"
    android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:label="@string/app_name"/>

 Pour terminer, ajoutez une permission pour que votre application puisse se connecter à internet :

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

 Il ne vous reste plus qu’à tester !


Qu'avez vous pensé de cet article ?

FacebookTwitterLinkedInPinterestViadeo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

*

Baptiste Vaudey

Développeur chez huco

Catégorie Tutoriel.

Même catégorie

Le scribing : une nouvelle façon de prendre des notes
Tutoriel – Connexion à un compte Google via Android
Tutoriel – Intégration de PayPal à Android