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..
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é EnvatoVous pouvez également trouver des développeurs Android sur Envato Studio pour vous aider dans vos projets..
Développeurs Android sur Envato StudioAvant de commencer, assurez-vous d’avoir accès aux éléments suivants:
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.
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'
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:
LoginButton
pour permettre à l'utilisateur de se connecter à FacebookAffichage
pour afficher le résultat de la dernière tentative de connexionVous 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:
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:
onSuccès
est appelé.onCancel
est appelé.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);
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
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.
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.
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..