Facebook Login für iOS – Schnellstart

Wir haben eine Änderung an den Endpunkten für Limited Login vorgenommen. Diese Funktion ist jetzt über limited.facebook.com verfügbar.

Wenn Personen sich über Facebook bei deiner App anmelden, können sie deiner App Berechtigungen erteilen, damit du Informationen abrufen oder in ihrem Namen Handlungen auf Facebook durchführen kannst.

Im Folgenden wird beschrieben, wie du Facebook Login zu deinem iOS-Projekt hinzufügst.

1. Anmeldung

Bitte melde dich für die Erstellung von Apps bei Facebook an oder registriere dich als Entwickler.

2. Richte deine Entwicklungsumgebung ein

Richte deine Entwicklungsumgebung ein, bevor du Facebook Login für iOS verwendest.

Verwenden des Swift Package Managers (SPM)
  1. Klicke in Xcode auf Datei > Swift-Pakete > Paketabhängigkeit hinzufügen.
  2. Gib im angezeigten Dialog die Repository-URL ein: https://github.com/facebook/facebook-ios-sdk.
  3. Gib unter Version die Versionsnummer des aktuellen Facebook-SDKs für iOS ein.
  4. Nimm Eingaben für die Eingabeaufforderungen vor, um die Bibliotheken auszuwählen, die du in deinem Projekt verwenden möchten.

3. Registriere und konfiguriere deine App für Facebook

Registriere und konfiguriere deine App, damit du Facebook Login verwenden kannst. Füge dazu deine Bundle-ID hinzu.

Du musst dich anmelden, damit du diesen Schritt ausführen kannst.

4. Konfiguriere dein Projekt

Konfiguriere die Datei Info.plist mit einem XML-Ausschnitt, der Daten zu deiner App enthält.

Nachdem du Facebook Login integriert hast, werden App-Events automatisch für den Events Manager protokolliert und erfasst, es sei denn, du deaktivierst die automatische Protokollierung von App-Events. Detaillierte Informationen dazu, welche Daten erfasst werden und wie du die automatische Protokollierung von App-Events deaktivierst, findest du im Abschnitt Automatische Protokollierung von App-Events.

  1. Klicke mit der rechten Maustaste auf Info.plist und wähle „Öffnen als ▸ Quellcode“ aus.
  2. Kopiere den folgenden XML-Ausschnitt und füge ihn in den Textkörper deiner Datei ein (<dict>...</dict>).
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>fbAPP-ID</string>
      </array>
      </dict>
    </array>
    <key>FacebookAppID</key>
    <string>APP-ID</string>
    <key>FacebookClientToken</key>
    <string>CLIENT-TOKEN</string>
    <key>FacebookDisplayName</key>
    <string>APP-NAME</string>
  3. Ersetze in <array><string> im Key [CFBundleURLSchemes]APP-ID durch deine App-ID.
  4. Ersetze in <string> im Key FacebookAppIDAPP-ID durch deine App-ID.
  5. Ersetze in <string> im Key FacebookClientTokenCLIENT-TOKEN durch den Wert, den du in deinem App-Dashboard unter Einstellungen > Erweitert > Client Token findest.
  6. Ersetze in <string> im Key FacebookDisplayNameAPP-NAME durch den Namen deiner App.
  7. Wenn du Facebook-Dialoge (wie z. B. „Login“, „Teilen“ oder „App-Einladungen“) verwendest, die einen App-Wechsel zu Facebook-Apps durchführen können, muss die Info.plist-Datei deiner App ebenfalls Folgendes aufweisen:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

Du kannst die automatische Erfassung von App-Events direkt auf „true“ oder „false“ setzen, indem du FacebookAutoLogAppEventsEnabled als Schlüssel in Info.plist hinzufügst.

Du musst in deinem Projekt die Funktion „Schlüsselbund teilen“ aufnehmen, damit die Anmeldung in Mac Catalyst-Anwendungen funktioniert.
  1. Wähle den Button + Funktion im Tab Anmeldung und Funktionen, wenn du dein App-Ziel konfigurierst.
  2. Wähle die Funktion Schlüsselbund teilen aus.
  3. Stelle sicher, dass die Funktion Schlüsselbund teilen für das Ziel aufgeführt ist.

5. Verbinde deinen App Delegate

Ersetze den Code in der AppDelegate.swift Methode durch folgenden Code. Dieser Code initialisiert das SDK beim Start der App und ermöglicht dem SDK, die Anmeldungen und Teilen-Vorgänge aus der nativen Facebook-App zu verarbeiten, wenn du einen Anmelde- oder Teilen-Vorgang durchführst. Ansonsten muss der*die Benutzer*in bei Facebook angemeldet sein, um den Browser in der App für die Anmeldung zu verwenden.
    
// AppDelegate.swift
import UIKit
import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {    
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {          
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        return true
    }
          
    func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey : Any] = [:]
    ) -> Bool {
        ApplicationDelegate.shared.application(
            app,
            open: url,
            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
            annotation: options[UIApplication.OpenURLOptionsKey.annotation]
        )
    }  
}

iOS 13 hat das Öffnen der URL-Funktionalität verschoben auf SceneDelegate. Wenn du iOS 13, füge die folgende Methode zu deinem SceneDelegate damit Vorgänge wie das Anmelden oder die Freigabe ordnungsgemäß funktionieren:
// SceneDelegate.swift
import FacebookCore
  ...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    guard let url = URLContexts.first?.url else {
        return
    }

    ApplicationDelegate.shared.application(
        UIApplication.shared,
        open: url,
        sourceApplication: nil,
        annotation: [UIApplication.OpenURLOptionsKey.annotation]
    )
}

6. Füge deinem Code Facebook Login hinzu

Verwende den Facebook Login-Button in deiner iOS-App.

6a. Füge deinem Code Facebook Login hinzu.

Füge den folgenden Code-Ausschnitt zu einem Anzeige-Controller hinzu, um einen Facebook Login-Button in deine App einzufügen.
// Add this to the header of your file, e.g. in ViewController.swift 
import FacebookLogin

// Add this to the body
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
	
        let loginButton = FBLoginButton()
        loginButton.center = view.center
        view.addSubview(loginButton)
    }
}
Du solltest deine App nun ausführen und dich über den Facebook Login-Button anmelden können.

6b. Prüfe den aktuellen Login-Status

Bei deiner App kann jeweils immer nur eine Person angemeldet sein. Jede angemeldete Person in deiner App wird mit dem AccessToken.current repräsentiert.
Der LoginManager legt diesen Schlüssel für dich fest. Wenn der AccessToken.current festgelegt wird, wird er zusätzlich automatisch in einen Keychain-Cache geschrieben.
Der AccessToken enthält die userID, mit der sich ein Nutzer identifizieren lässt.
Du solltest deinen Anzeige-Controller aktualisieren, damit er beim Start nach einem vorhandenen Schlüssel sucht. Dadurch wird ein erneutes unnötiges Anzeigen des Login-Vorgangs verhindert, wenn ein Nutzer deiner App bereits Berechtigungen erteilt hat:
override func viewDidLoad() {
    super.viewDidLoad()

    if let token = AccessToken.current,
        !token.isExpired {
        // User is logged in, do work such as go to next view controller.
    }
}
    

6c. Fordere Berechtigungen an

Wenn du Facebook Login verwendest, kann deine App bei Personen Berechtigungen für den Zugriff auf bestimmte Informationen anfordern. Facebook Login benötigt für externe Nutzer*innen die erweiterte „public_profile“-Berechtigung.
Leseberechtigungen für Facebook Login-Button
Um zusätzliche Leseberechtigungen anzufordern, musst du die permissions -Berechtigung für das FBLoginButton -Objekt festlegen.
// Extend the code sample from 6a. Add Facebook Login to Your Code
// Add to your viewDidLoad method:
loginButton.permissions = ["public_profile", "email"]
  
Der*die Nutzer*in wird aufgefordert, deiner App die angeforderten Berechtigungen zu gewähren. Beachte bitte, dass für einige Berechtigungen ein Login Review erforderlich ist. Informationen zu Berechtigungen findest du unter Verwalten von Berechtigungen.

7. Nächste Schritte

Herzlichen Glückwunsch! Du hast Facebook Login zu deiner iOS-App hinzugefügt. Sieh dir auch unsere anderen Dokumentationsseiten an. Dort findest du weiterführende Leitfäden.
Implementiere einen Rückruf zu Datenlöschung, um Anfragen von Personen zu bearbeiten, die die Löschung ihrer Daten aus Facebook angefordert haben.
Füge Events zu deiner App hinzu, um Analysen anzuzeigen, die Performance von Werbeanzeigen zu messen und Zielgruppen für Werbeanzeigen aufzubauen.
Sieh dir unsere weiterführenden Anleitungen zum Einrichten von Facebook Login für iOS-Apps an.
Über Facebook Login kannst du verwalten, auf welche Daten deine App Zugriff hat.
Sieh dir an, wie du auf Fehler reagieren kannst, die vom Facebook-SDK zurückgegeben wurden.
Teste und bestätige, dass dein Facebook Login-Vorgang funktioniert.
Je nachdem, welche Daten du von Personen anforderst, die Facebook Login nutzen, musst du deine App vor der Einführung möglicherweise zu einer Überprüfung einreichen.
Wie du deinen eigenen Anmeldevorgang erstellst, erfährst du unter Anmeldevorgang manuell erstellen.