Erste Schritte mit dem Android-SDK

Das Facebook-SDK für Android bietet die einfachste Methode, deine Android-App in Facebook zu integrieren. Es ermöglicht Folgendes:

Es gibt zwei Möglichkeiten, deine App für die Verwendung des Facebook-SDK einzurichten:

  • Über den Schnellstart
  • Durch Einrichten deines Projekts mit dem Facebook-SDK

Schnellstart

Um eine Facebook-App-ID zu erhalten, konfiguriere die Einstellungen deiner App und importiere das Facebook-SDK. Klicke dann auf den unten aufgeführten Button und befolge die Online-Anweisungen.

Schnellstart für Android

 

Verwandte Leitfäden:

Android Studio-Setup

Um das Facebook-SDK in einem Projekt zu verwenden, musst du es als Build-Abhängigkeit hinzufügen und importieren.

1. Gehe zu Android Studio | New Project | Minimum SDK

2. Wähle API 15: Android 4.0.3 (oder höher) aus und erstelle dein neues Projekt.

3. Nachdem du ein neues Projekt erstellt hast, öffne your_app | build.gradle

4. Füge Folgendes zum buildscript { repositories {}}-Abschnitt der build.gradle (Project)-Datei hinzu:

mavenCentral() 

5. Füge Folgendes zum dependencies {}-Abschnitt der build.gradle (module: app)-Datei hinzu, um die aktuelle Version des Facebook-SDK zu kompilieren:

Dieses Objekt sollte gelöscht werden. Weitere Informationen erhältst du von Arsenio Locsin.

Wenn du das Facebook-SDK nutzt, werden Events in deiner App automatisch für Facebook Analytics protokolliert und erfasst, es sei denn , du deaktivierst die automatische App Event-Protokollierung. Detaillierte Informationen dazu, welche Daten erfasst werden und wie du die automatische App Event-Protokollierung deaktivierst, findest du im Abschnitt Automatische App Event-Protokollierung.

6. Erstelle dein Projekt. Jetzt kannst du com.facebook.FacebookSdk in deine App importieren.

Füge die Facebook-App-ID hinzu

Füge anschließend deine Facebook-App-ID zur strings-Datei deines Projekts hinzu und aktualisiere das Android-Manifest:

1. Öffne die Datei strings.xml. Beispielpfad: /app/src/main/res/values/strings.xml

2. Füge einen neuen String mit dem Namen facebook_app_id und deiner Facebook-App-ID als Wert hinzu.

3. Öffne AndroidManifest.xml.

4. Füge ein uses-permission-Element zum Manifest hinzu:

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

5. Füge ein meta-data-Element zum application-Element hinzu:

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

Senden von Bildern oder Videos

Wenn du Links, Bilder oder Videos über die Facebook für Android-App teilst, musst du auch den FacebookContentProvider im Manifest deklarieren.

Hänge deine App-ID an das Ende des authorities-Werts an. Beispiel: Wenn deine Facebook-App-ID 1234 lautet, sieht die Deklaration wie folgt aus:

<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
          android:name="com.facebook.FacebookContentProvider"
          android:exported="true" />

Verwenden des SDK mit ProGuard

Du musst keine zusätzlichen Schritte ausführen, um ProGuard für das Android-SDK von Facebook zu verwenden. Anleitungen zu Proguard findest du auf der Android-Entwicklerseite unter Reduzieren von Code und Ressourcen.

Ausführen von Beispiel-Apps

Die folgenden Beispiele werden mit dem SDK bereitgestellt:

  • HelloFacebookSample: Zeigt den Profilzugriff, Status-Updates und das Hochladen von Fotos.
  • RPSSample: Verwendung des nativen Dialogs „Teilen“, Open Graph-Veröffentlichung, Auswahlelemente, Einladungen und Deep Linking.
  • Scrumptious: Zeigt Login, Anfragen, Auswahlelemente, Hochladen von Bildern und Open Graph-Veröffentlichung.

Du kannst mit Beispielen experimentieren, indem du das SDK in ein Android Studio-Projekt importierst.

Die Beispiele sind projektabhängig und nicht abhängig von einem zentralen Repository über Maven Central oder jCenter. So spiegeln die Beispiele Änderungen wider, wenn eine lokale Kopie des SDK aktualisiert wird.

Um Beispiel-Apps schnell auszuführen, kannst du Key-Hashes für deine Entwicklungsumgebungen erstellen. Füge diese deinem Facebook-Entwicklerprofil für die Beispiel-Apps hinzu. Keytool für die Erstellung der Key-Hashes ist im Java SE Development Kit (JDK) enthalten, das du im Rahmen des Setups deiner Entwicklungsumgebung installiert hast. OpenSSL ist unter OpenSSL verfügbar.

Führe unter OS X Folgendes aus:

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

Führe unter Windows Folgendes aus:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64

Dadurch wird ein 28-stelliger String erstellt.

Gehe zur Facebook-Entwicklerseite. Melde dich bei Facebook an und gehe über das Menü oben rechts zu Entwicklereinstellungen:

Wähle in den Entwicklereinstellungen die Option Beispiel-App im Menü aus, füge den Key-Hash deinem Profil hinzu und speichere ihn:

Du kannst mehrere Key-Hashes hinzufügen, wenn du Apps mit mehreren Geräten entwickelst.

Jetzt kannst du alle Beispiele kompilieren und ausführen, einschließlich derer, die Facebook Login verwenden.

Erstellen von Key-Hashes für die Entwicklung

Facebook nutzt den Key-Hash, um Interaktionen zwischen deiner App und der Facebook-App zu authentifizieren. Wenn du Apps ausführst, die Facebook Login verwenden, musst du deinen Android-Entwicklungs-Key-Hash deinem Facebook-Entwicklerprofil hinzufügen.

Für die zu veröffentlichende Version deiner App musst du außerdem einen Release Key-Hash erstellen und festlegen.

Mit OS X oder Windows kannst du einen Key-Hash erhalten, indem du ihn erstellst oder den von Settings.getApplicationSignature(Context) zurückgegebenen Wert verwendest. Eine Anleitung dazu findest du unter Ausführen von Beispiel-Apps.


Nächste Schritte

Nachdem du das Facebook-SDK für Android installiert und eine Facebook-App-ID konfiguriert hast, kannst du Folgendes sehen:


Festlegen eines Release Key-Hash

Um den Austausch von Daten zwischen deiner App und Facebook zu authentifizieren, musst du einen Release Key-Hash erstellen und diesen den Android-Einstellungen in deiner Facebook-App-ID hinzufügen. Andernfalls funktioniert die Facebook-Integration möglicherweise nicht ordnungsgemäß, wenn du deine App im Store veröffentlichst.

In einem früheren Schritt solltest du deine Facebook-Entwicklereinstellungen mit den Key-Hashes für deine Entwicklungsumgebungen aktualisiert haben.

Beim Veröffentlichen der App wird diese normalerweise mit einer anderen Signatur als der für die Entwicklungsumgebung signiert. Deshalb musst du unbedingt einen Release Key-Hash erstellen und den Android-Einstellungen für die Facebook-App-ID hinzufügen.

Um einen Hash des Release Keys zu erstellen, führe den folgenden Befehl unter Mac oder Windows aus und ersetze deinen Release Key-Alias und den Pfad zu deinem Keystore. Führe unter OS X Folgendes aus:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Verwende unter Windows Folgendes:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Achte darauf, das Passwort zu verwenden, das du bei der Erstellung des Release Keys festgelegt hast.

Dieser Befehl sollte einen 28-stelligen String erstellen. Kopiere diesen Release Key-Hash und füge ihn in die Android-Einstellungen deiner Facebook-App-ID ein.

Stelle außerdem sicher, dass die Android-Einstellungen deiner Facebook-App-ID auch den richtigen Paketnamen und die richtige Hauptaktivitätsklasse für dein Android-Paket enthalten.


Verwenden des Facebook-SDK mit Maven

Du kannst die Maven-Abhängigkeit mit der neuesten verfügbaren Version des Android-SDK deklarieren:

<dependency>
  <groupId>com.facebook.android</groupId>
  <artifactId>facebook-android-sdk</artifactId>
  <version>PUT_LATEST_VERSION_HERE</version>
</dependency> 

Problembehebung bei Beispiel-Apps

Wenn Probleme beim Ausführen einer Beispiel-App auftreten, kann dies mit dem Key-Hash in Zusammenhang stehen. Möglicherweise tritt eines der folgenden Szenarien auf:

  • Ein nativer Login-Dialog wird angezeigt. Nach dem Akzeptieren der Berechtigungen bist du aber noch immer abgemeldet. Das Logcat enthält außerdem eine Exception:
12-20 10:23:24.507: W/fb4a:fb:OrcaServiceQueue(504):
com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id
  • Ein nicht nativer Login-Dialog wird mit einer Fehlermeldung angezeigt:  „App ist falsch konfiguriert für Facebook Login ...“.

Prüfe deinen Key-Hash und stelle sicher, dass du den richtigen verwendest. I

Du kannst den Beispielcode auch manuell ändern, um den richtigen Key-Hash zu verwenden. Nimm z. B. in der HelloFacebookSampleActivity-Klasse eine vorübergehende Änderung an onCreate() vor:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.facebook.samples.hellofacebook", 
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {
        
    } catch (NoSuchAlgorithmException e) {
        
    }
    
    ...

Speichere die Änderungen und führe das Beispiel erneut aus. Suche in der Logcat-Ausgabe nach einer Meldung wie der Folgenden:

12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=

Speichere den Key-Hash in deinem Entwicklerprofil. Führe die Beispiele erneut aus und stelle sicher, dass du dich erfolgreich anmelden kannst.