Facebook Login bietet eine bequeme und sichere Möglichkeit, sich bei einer App anzumelden, ohne vorher einen Anmeldeprozess durchführen zu müssen. Bei Verwendung der neuesten Version des SDK von Facebook für Android dauert es nur wenige Minuten, um diese Funktion Ihrer App hinzuzufügen.
In diesem kurzen Tipp erfahren Sie, wie Sie einer Android-App eine Facebook-Anmeldeschaltfläche hinzufügen und die Ereignisse verwalten, um einen Benutzer mit der Facebook-Anmeldung anzumelden.
Wenn Sie eine schnelle Lösung zum Einrichten der Benutzerauthentifizierung in Ihren Android-Apps wünschen, probieren Sie das Android Authentication System in Envato Market. Hierbei handelt es sich um ein Quelltextprojekt, mit dem Entwickler Anmeldungen und Anmeldungen erstellen und Benutzer für ihre App autorisieren können.
Android-Authentifizierungssystem auf dem Envato MarketSie können auch Android-Entwickler in Envato Studio finden, um Sie bei Ihren Projekten zu unterstützen.
Android-Entwickler bei Envato StudioBevor Sie beginnen, stellen Sie sicher, dass Sie Zugriff auf Folgendes haben:
Alle Apps, die das Facebook SDK verwenden, müssen bei Facebook registriert sein. Melden Sie sich auf der Facebook Developers-Website an und klicken Sie auf Erstellen Sie eine neue App oben rechts.
Sie erhalten ein Formular, in dem Sie nach den Apps gefragt werden Anzeigename, Namensraum, und Kategorie. Geben Sie die erforderlichen Felder ein und klicken Sie auf App-ID erstellen.
Im nächsten Bildschirm können Sie Ihre sehen Anwendungs-ID. Notieren Sie sich dies, da Sie es später in diesem Tutorial benötigen.
Öffnen die Einstellungen von links und klicken Sie auf die Plattform hinzufügen Taste. Wählen Sie im Popup aus Android.
Geben Sie im nächsten Formular den Paketnamen Ihrer App und den Namen Ihrer an Aktivität
. Wenn Sie Ihre App noch nicht erstellt haben oder Aktivität
Stellen Sie jedoch sicher, dass Sie sich an die eingegebenen Werte erinnern.
Ausfüllen Key Hashes Öffnen Sie ein Terminalfenster und führen Sie das aus Keytool
Befehl zum Generieren eines Schlüsselhashs unter Verwendung des Debug-Keystores unter ~ / .android / debug.keystore. So sollte der Befehl aussehen.
keytool -exportcert -alias androiddebugkey -keystore ~ / .android / debug.keystore | openssl sha1 -binary | openssl base64
Das Standardkennwort für den Debug-Keystore lautet Android. Geben Sie dieses Passwort ein, wenn Sie dazu aufgefordert werden. Die Ausgabe des Befehls sollte aus 28 Zeichen bestehen. Kopieren Sie es, gehen Sie zurück zu Ihrem Browser und fügen Sie die Zeichenfolge in das ein Key Hashes Feld wie unten gezeigt.
Stelle sicher Einmalige Anmeldung ist eingestellt auf Ja und klicken Sie auf die Änderungen speichern Taste. Ihre App ist jetzt registriert.
Das Facebook SDK ist auf Maven Central verfügbar. Um dieses Repository zu verwenden, bearbeiten Sie das build.gradle Datei in Ihrem Projekt App Verzeichnis und fügen Sie den folgenden Code vor der Liste von Abhängigkeiten:
Repositorys mavenCentral ()
Sie können das Facebook-SDK jetzt als kompilieren Abhängigkeit. Fügen Sie der Liste von den folgenden Code hinzu Abhängigkeiten:
"com.facebook.android:facebook-android-sdk:4.0.0" kompilieren
Erstellen Sie ein neues Layout mit dem Namen main_activity.xml im res / layout. Dies wird ein sehr einfaches Layout mit nur zwei Widgets sein:
LoginButton
um dem Benutzer zu erlauben, sich bei Facebook anzumeldenTextvorschau
um das Ergebnis des letzten Anmeldeversuchs anzuzeigenSie können sie in einem platzieren RelativesLayout
. Nachdem Sie Attribute zum Auffüllen und Positionieren der Widgets hinzugefügt haben, sieht das XML des Layouts in etwa wie folgt aus:
Erstellen Sie eine neue Java-Klasse, die erweitert wird Aktivität
und nennen Sie es MainActivity.java. Denken Sie daran, dass der Name dieser Klasse und das zugehörige Paket den Werten entsprechen sollten, die Sie bei der Registrierung Ihrer App bei Facebook eingegeben haben.
Deklarieren Sie die Widgets, die Sie im Layout der Aktivität definiert haben, als Felder dieser Klasse.
private TextView-Informationen; private LoginButton LoginButton;
Deklarieren Sie a CallbackManager
als ein anderes Feld. Das CallbackManager
, wird, wie der Name vermuten lässt, zur Verwaltung der in der App verwendeten Rückrufe verwendet.
privater CallbackManager CallbackManager;
Das SDK muss vor der Verwendung einer seiner Methoden initialisiert werden. Sie können dies tun, indem Sie anrufen sdkInitialize
und den Kontext der Anwendung an sie übergeben. Fügen Sie dem folgenden Code hinzu onCreate
Methode Ihrer Aktivität
:
FacebookSdk.sdkInitialize (getApplicationContext ());
Als nächstes initialisieren Sie Ihre Instanz von CallbackManager
Verwendung der CallbackManager.Factory.create
Methode.
callbackManager = CallbackManager.Factory.create ();
Anruf setContentView
um das im vorherigen Schritt definierte Layout als Layout festzulegen Aktivität
und dann verwenden findViewById
um die Widgets zu initialisieren.
setContentView (R.layout.main_activity); info = (TextView) findViewById (R.id.info); loginButton = (LoginButton) findViewById (R.id.login_button);
Es ist an der Zeit, einen Rückruf zu erstellen, um die Ergebnisse der Anmeldeversuche zu handhaben und ihn mit zu registrieren CallbackManager
. Benutzerdefinierte Rückrufe sollten implementiert werden Facebook Rückruf
. Die Schnittstelle verfügt über Methoden, um mit jedem möglichen Ergebnis eines Anmeldeversuchs umzugehen:
onSuccess
wird genannt.onCancel
wird genannt.onError
wird genannt.Um den benutzerdefinierten Rückruf zu registrieren, verwenden Sie die registerCallback
Methode. Der Code zum Erstellen und Registrieren des Rückrufs sollte folgendermaßen aussehen:
loginButton.registerCallback (callbackManager, neuer FacebookCallback)() @Override public void onSuccess (LoginResult loginResult) @Override public void onCancel () @Override public void onError (FacebookException e) );
Sie können jetzt diesen Methoden Code hinzufügen, um die entsprechenden Meldungen mithilfe von anzuzeigen Text setzen
Methode der Textvorschau
.
Wenn der onSuccess
Methode wird aufgerufen, a LoginResult
wird als Parameter übergeben. Rufen Sie das darin enthaltene Zugriffstoken mit ab Zugriffstoken erhalten
und verwenden Sie es getUserId
Methode, um die Benutzer-ID zu erhalten. Um das Token in Form eines String
, benutzen bekomme Token
. Zeigen Sie diese Werte im an Textvorschau
indem Sie dem folgenden Code hinzufügen onSuccess
Methode:
info.setText ("Benutzer-ID:" + loginResult.getAccessToken (). getUserId () + "\ n" + "Auth Token:" + loginResult.getAccessToken (). getToken ());
Wenn der Benutzer den Anmeldeversuch abbricht, wird die Meldung "Anmeldeversuch abgebrochen" angezeigt. Fügen Sie dem folgenden Code hinzu onCancel
Methode:
info.setText ("Anmeldeversuch abgebrochen.");
Fügen Sie auf ähnliche Weise den folgenden Code hinzu onError
Methode:
info.setText ("Anmeldeversuch fehlgeschlagen.");
Durch Antippen der Login-Schaltfläche wird ein neuer gestartet Aktivität
, was ein Ergebnis zurückgibt. Um das Ergebnis zu erhalten und zu verarbeiten, überschreiben Sie das onActivityResult
Methode Ihrer Aktivität
und übergeben Sie die Parameter an die onActivityResult
Methode von CallbackManager
.
@Override protected void onActivityResult (int requestCode, int resultCode, Absichtsdaten) callbackManager.onActivityResult (requestCode, resultCode, data);
Die Anwendungs-ID, die Sie bei der Registrierung Ihrer App erhalten haben, sollte als hinzugefügt werden Schnur in deinem Projekt res / values / strings.xml. Rufen Sie für dieses Lernprogramm die Zeichenfolge auf facebook_app_id.
123456908761030
Definieren Sie Ihre Aktivität
in dem AndroidManifest.xml. Wenn es der erste ist Aktivität
Ihrer App sollten Sie auch eine hinzufügen Vorsatzfilter
das reagiert auf die Aktion android.intent.action.MAIN
.
Fügen Sie die Anwendungs-ID als hinzu Metadaten
.
Definieren FacebookAktivität
als andere Aktivität
das gehört zu deiner App. Sie übernimmt die meisten Konfigurationsänderungen selbst. Sie müssen das mit dem erwähnen configChanges
Attribut.
Zum Schluss musst du noch fragen android.permission.INTERNET
sich mit den Servern von Facebook verbinden zu können.
Ihre App ist jetzt abgeschlossen. Wenn Sie es erstellen und auf Ihrem Android-Gerät bereitstellen, wird die Facebook-Anmeldeschaltfläche angezeigt.
Wenn Sie auf die Login-Schaltfläche tippen, gelangen Sie zu einer Facebook-Seite, auf der Sie aufgefordert werden, sich anzumelden und die App zu autorisieren.
Nach erfolgreicher Anmeldung wird die Textvorschau
zeigt die Benutzer-ID und das Authentifizierungstoken an.
In diesem kurzen Tipp haben Sie erfahren, wie Sie das Facebook-SDK verwenden, um Facebook-Login zu Ihrer Android-App hinzuzufügen. Sie haben auch gelernt, mit den möglichen Ergebnissen eines Anmeldeversuchs umzugehen. Um mehr über das Facebook-Login zu erfahren, können Sie die Referenz für das Facebook-SDK für Android durchgehen.