Conseil rapide Ajouter une connexion Facebook à votre application Android

Facebook Login offre aux utilisateurs un moyen pratique et sécurisé de se connecter à une application sans avoir à passer par un processus d'inscription préalable. En utilisant la dernière version du SDK de Facebook pour Android, il ne faut que quelques minutes pour ajouter cette fonctionnalité à votre application..

Dans cette astuce, vous apprendrez à ajouter un bouton de connexion Facebook à une application Android et à gérer les événements permettant de connecter un utilisateur à l'aide de la connexion Facebook..

Option Premium

Si vous souhaitez une solution rapide pour configurer l’authentification des utilisateurs dans vos applications Android, essayez le système d’authentification Android sur Envato Market. C'est un projet de code source qui permet aux développeurs de créer des inscriptions et des connexions et d'autoriser les utilisateurs pour leur application..

Système d'authentification Android sur le marché Envato

Vous pouvez également trouver des développeurs Android sur Envato Studio pour vous aider dans vos projets.. 

Développeurs Android sur Envato Studio

Conditions préalables

Avant de commencer, assurez-vous d’avoir accès aux éléments suivants:

  • la dernière version d'Android Studio
  • un compte Facebook

1. Enregistrez votre application

Toutes les applications qui utilisent le SDK de Facebook doivent être enregistrées avec Facebook. Connectez-vous au site Web des développeurs Facebook et cliquez sur Créer une nouvelle application en haut à droite.

Vous êtes présenté avec un formulaire qui demande l'application Afficher un nom, Espace de noms, et Catégorie. Entrez les champs requis et cliquez sur Créer un identifiant d'application.

Dans l'écran suivant, vous pouvez voir votre ID d'application. Prenez-en note, car vous en aurez besoin plus tard dans ce tutoriel..

Ouvrir Réglages à gauche et cliquez sur le Ajouter une plateforme bouton. Dans la fenêtre contextuelle, sélectionnez Android.

Dans le formulaire suivant, entrez le nom du package de votre application et le nom de votre Activité. Si vous n'avez pas créé votre application ou Activité mais assurez-vous de vous rappeler les valeurs que vous avez entrées.

Pour remplir le Clés de hachage champ, ouvrez une fenêtre de terminal et lancez le outil de clé commande pour générer un hachage de clé en utilisant le magasin de clés de débogage situé à ~ / .android / debug.keystore. Voici à quoi devrait ressembler la commande.

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

Le mot de passe par défaut du magasin de clés de débogage est Android. Entrez ce mot de passe lorsque vous y êtes invité. Le résultat de la commande doit être une chaîne de 28 caractères. Copiez-le, retournez dans votre navigateur et collez la chaîne dans le Clés de hachage champ comme indiqué ci-dessous.

Assure-toi Authentification unique est réglé sur Oui et cliquez sur le Sauvegarder les modifications bouton. Votre application est maintenant enregistrée.

2. Ajouter le SDK Facebook à votre projet

Le SDK de Facebook est disponible sur Maven Central. Pour utiliser ce référentiel, éditez le build.gradle déposer dans votre projet app répertoire et ajoutez le code suivant à celui-ci avant la liste de les dépendances:

référentiels mavenCentral ()

Vous pouvez maintenant ajouter le SDK Facebook à votre projet en tant que compiler dépendance. Ajoutez le code suivant à la liste de les dépendances:

compiler 'com.facebook.android:facebook-android-sdk:4.0.0'

3. Créer une activité

Étape 1: Définir la mise en page

Créer une nouvelle mise en page nommée main_activity.xml dans res / mise en page. Cela va être une mise en page très simple avec seulement deux widgets:

  • une LoginButton pour permettre à l'utilisateur de se connecter à Facebook
  • une Affichage pour afficher le résultat de la dernière tentative de connexion

Vous pouvez les placer dans un Disposition relative. Après avoir inclus les attributs de remplissage et de positionnement des widgets, le code XML de la présentation se présentera de la manière suivante:

    

Étape 2: Créer la classe

Créer une nouvelle classe Java qui s'étend Activité et nommez-le MainActivity.java. N'oubliez pas que le nom de cette classe et le package auquel elle appartient doivent correspondre aux valeurs que vous avez entrées lors de l'enregistrement de votre application avec Facebook..

Déclarez les widgets que vous avez définis dans la présentation de l'activité en tant que champs de cette classe.

informations TextView privées; loginButton privé loginButton;

Déclarer un Gestionnaire de rappel comme un autre domaine. le Gestionnaire de rappel, comme son nom l'indique, est utilisé pour gérer les rappels utilisés dans l'application.

private CallbackManager callbackManager;

Le SDK doit être initialisé avant d'utiliser l'une de ses méthodes. Vous pouvez le faire en appelant sdkInitialize et en lui passant le contexte de l'application. Ajoutez le code suivant au onCreate méthode de votre Activité:

FacebookSdk.sdkInitialize (getApplicationContext ());

Ensuite, initialisez votre instance de Gestionnaire de rappel en utilisant le CallbackManager.Factory.create méthode.

callbackManager = CallbackManager.Factory.create ();

Appel setContentView définir la mise en page définie à l’étape précédente comme étant celle de cette Activité et ensuite utiliser findViewById initialiser les widgets.

setContentView (R.layout.main_activity); info = (TextView) findViewById (R.id.info); loginButton = (LoginButton) findViewById (R.id.login_button);

Il est temps de créer un rappel pour gérer les résultats des tentatives de connexion et l’enregistrer avec le Gestionnaire de rappel. Les rappels personnalisés doivent implémenter FacebookCallback. L'interface dispose de méthodes pour gérer chaque résultat possible d'une tentative de connexion:

  • Si la tentative de connexion est réussie, onSuccès est appelé.
  • Si l'utilisateur annule sa tentative de connexion, onCancel est appelé.
  • Si une erreur survient, onError est appelé.

Pour enregistrer le rappel personnalisé, utilisez la commande enregistrerCallback méthode. Le code pour créer et enregistrer le rappel devrait ressembler à ceci:

loginButton.registerCallback (callbackManager, nouvelle page FacebookCallback() @Override public void onSuccess (LoginResult loginResult)  @Override public void onCancel ()  @Override public void onError (FacebookException e) ;

Vous pouvez maintenant ajouter du code à ces méthodes pour afficher les messages appropriés à l'aide du Définir le texte méthode du Affichage.

Quand le onSuccès la méthode s'appelle, un LoginResult est passé en paramètre. Récupérer le jeton d'accès qu'il contient à l'aide de getAccessToken et utiliser ses getUserId méthode pour obtenir l'ID de l'utilisateur. Pour obtenir le jeton sous la forme d'un Chaîne, utilisation getToken. Afficher ces valeurs dans le Affichage en ajoutant le code suivant à la onSuccès méthode:

info.setText ("ID utilisateur:" + loginResult.getAccessToken (). getUserId () + "\ n" + "Jeton d'authentification:" + loginResult.getAccessToken (). getToken ());

Si l'utilisateur annule sa tentative de connexion, nous affichons un message disant "Tentative de connexion annulée". Ajoutez le code suivant au onCancel méthode:

info.setText ("Tentative de connexion annulée.");

De même, ajoutez le code suivant à la onError méthode:

info.setText ("La tentative de connexion a échoué.");

Appuyez sur le bouton de connexion pour lancer une nouvelle Activité, ce qui retourne un résultat. Pour recevoir et gérer le résultat, remplacez le onActivityResult méthode de votre Activité et passer ses paramètres à la onActivityResult méthode de Gestionnaire de rappel.

@Override protected void onActivityResult (int requestCode, int resultCode, données d'intention) callbackManager.onActivityResult (requestCode, resultCode, data); 

4. Ajouter l'ID d'application Facebook

L’ID d’application que vous avez reçu lors de l’enregistrement de votre application doit être ajouté en tant que chaîne dans votre projet res / values ​​/ strings.xml. Pour ce tutoriel, appelez la chaîne facebook_app_id.

123456908761030

5. Modifier le manifeste

Définissez votre Activité dans le AndroidManifest.xml. Si c'est le premier Activité de votre application, vous devez également ajouter un filtre d'intention qui répond à l'action android.intent.action.MAIN.

     

Ajoutez l'ID de l'application en tant que méta-données.

Définir FacebookActivité comme un autre Activité qui appartient à votre application. Il gère la plupart des changements de configuration eux-mêmes. Vous devez mentionner que l’utilisation de la configChanges attribut.

Enfin, vous devez demander android.permission.INTERNET pouvoir se connecter aux serveurs de Facebook.

6. Construire et exécuter

Votre application est maintenant terminée. Lorsque vous le construisez et le déployez sur votre appareil Android, vous verrez le bouton de connexion Facebook..

Appuyez sur le bouton de connexion pour accéder à une page Facebook qui vous demande de vous connecter et d'autoriser l'application..

Une fois connecté avec succès, le Affichage affichera l'ID utilisateur et le jeton d'authentification.

Conclusion

Dans cette astuce, vous avez appris à utiliser le SDK de Facebook pour ajouter Facebook Login à votre application Android. Vous avez également appris à gérer les résultats possibles d’une tentative de connexion. Pour en savoir plus sur Facebook Login, vous pouvez consulter la référence du SDK Facebook pour Android..