Schneller Tipp Fügen Sie Ihrem Android-App eine Facebook-Anmeldung hinzu

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.

Premium Option

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 Market

Sie können auch Android-Entwickler in Envato Studio finden, um Sie bei Ihren Projekten zu unterstützen. 

Android-Entwickler bei Envato Studio

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Zugriff auf Folgendes haben:

  • die neueste Version von Android Studio
  • ein Facebook-Konto

1. Registrieren Sie Ihre App

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.

2. Fügen Sie Ihrem Projekt das Facebook SDK hinzu

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

3. Erstellen Sie eine Aktivität

Schritt 1: Definieren Sie das Layout

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:

  • ein LoginButton um dem Benutzer zu erlauben, sich bei Facebook anzumelden
  • ein Textvorschau um das Ergebnis des letzten Anmeldeversuchs anzuzeigen

Sie 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:

    

Schritt 2: Erstellen Sie die Klasse

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:

  • Wenn der Login-Versuch erfolgreich ist, onSuccess wird genannt.
  • Wenn der Benutzer den Anmeldeversuch abbricht, onCancel wird genannt.
  • Wenn ein Fehler auftritt, 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); 

4. Fügen Sie die Facebook-Anwendungs-ID hinzu

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

5. Bearbeiten Sie das Manifest

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.

6. Erstellen und ausführen

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.

Fazit

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.