Facebook Login per iOS - Avvio rapido

Abbiamo apportato una modifica agli endpoint per l'accesso limitato; ora è accessibile all'indirizzo limited.facebook.com.

Quando le persone accedono alla tua app con Facebook, possono concedere all'app le autorizzazioni che ti consentono di recuperare informazioni o di eseguire azioni per loro conto su Facebook.

I seguenti passaggi consentono di aggiungere Facebook Login al tuo progetto iOS.

Accesso: 1.

Accedi a Facebook per creare app o iscriverti come sviluppatore.

2. Configurazione dell'ambiente di sviluppo

Configura l'ambiente di sviluppo prima di usare Facebook Login per iOS.

Utilizzo di Swift Package Manager (SPM)
  1. In Xcode, clicca su File > Swift Packages > Add Package Dependency (File > Pacchetti Swift > Aggiungi dipendenza pacchetto).
  2. Nella finestra di dialogo visualizzata, inserisci l'URL del repository: https://github.com/facebook/facebook-ios-sdk.
  3. In Version (Versione), inserisci il numero della versione dell'SDK di Facebook per iOS più recente.
  4. Completa le istruzioni per selezionare le librerie che desideri usare nel progetto.

3. Registrazione e configurazione dell'app con Facebook

Registra e configura la tua app per poter usare Facebook Login aggiungendo l'identificatore del bundle.

Devi effettuare l'accesso per completare questo passaggio.

4. Configurazione del progetto

Configura il file Info.plist con uno snippet XML contenente i dati sulla tua app.

Dopo aver integrato Facebook Login, alcuni eventi nell'app vengono registrati e raccolti automaticamente per Gestione eventi, a meno che tu non disabiliti la registrazione automatica degli eventi nell'app. Per maggiori dettagli sul tipo di informazioni raccolte e su come disabilitare la registrazione automatica degli eventi nell'app, consulta Registrazione automatica degli eventi nell'app.

  1. Clicca con il tasto destro su Info.plist e scegli Apri come ▸ Codice sorgente.
  2. Copia e incolla lo snippet XML seguente nel corpo del file (<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. In <array><string> nel codice [CFBundleURLSchemes], sostituisci APP-ID con l'ID della tua app.
  4. In <string> nel codice FacebookAppID, sostituisci APP-ID con l'ID della tua app.
  5. In <string> nel codice FacebookClientToken, sostituisci CLIENT-TOKEN con il valore riportato in Impostazioni > Avanzate > Token client nella Dashboard gestione app.
  6. In <string> nel codice FacebookDisplayName, sostituisci APP-NAME con il nome della tua app.
  7. Per usare una delle finestre di dialogo di Facebook (ad es. Accedi, Condividi, Inviti all'app ecc.) che consentono di eseguire il passaggio di un'app alle app Facebook, il file Info.plist della tua app deve includere anche quanto segue:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

Puoi impostare direttamente la raccolta automatica degli eventi nell'app su "true" o "false" aggiungendo FacebookAutoLogAppEventsEnabled come chiave in Info.plist.

Affinché l'accesso funzioni in applicazioni Mac Catalyst, il progetto dovrà includere la funzionalità Keychain Sharing.
  1. Seleziona il pulsante + Capability (+ Funzionalità) nella tab Signing & Capabilities (Firma e funzionalità) quando configuri il target dell'app.
  2. Trova e seleziona la funzionalità Keychain Sharing (Condivisione portachiavi).
  3. Assicurati che la funzionalità Keychain Sharing (Condivisione portachiavi) sia elencata per il target.

5. Connessione dell'app delegate

Sostituisci il codice nel metodo AppDelegate.swift con il seguente codice. Il codice inizializza l'SDK all'avvio dell'app e consente all'SDK di gestire gli accessi e la condivisione dall'app nativa di Facebook quando esegui un'azione di accesso o condivisione. In caso contrario, l'utente deve aver effettuato l'accesso a Facebook per utilizzare il browser in-app per accedere.
    
// 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 ha spostato la funzionalità dell'URL di apertura a SceneDelegate. Se stai usando iOS 13, aggiungi il metodo seguente a SceneDelegate in modo che operazioni come l'accesso o la condivisione funzionino come previsto:
// 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. Aggiunta di Facebook Login al codice

Usa il pulsante Facebook Login nell'app per iOS.

6a. Aggiunta di Facebook Login al codice

Per aggiungere il pulsante Accedi di Facebook alla tua app, aggiungi il seguente snippet di codice al controller di visualizzazione.
// 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)
    }
}
A questo punto, dovresti essere in grado di eseguire la tua app ed effettuare l'accesso tramite il pulsante Accedi di Facebook.

6b. Controllo dello stato di accesso corrente

L'accesso all'app è consentito a un solo utente alla volta. Ogni utente che ha effettuato l'accesso all'app è rappresentato da AccessToken.current.
LoginManager imposta il token per te e, quando imposta AccessToken.current, lo scrive automaticamente sullo storage del keychain.
AccessToken contiene userID che puoi usare per identificare l'utente.
Per cercare un token esistente durante il caricamento, devi aggiornare il controller della vista. In questo modo, il flusso di accesso non viene più mostrato se l'utente ha già concesso le autorizzazioni alla tua app:
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. Richiesta di autorizzazioni

Tramite Facebook Login, la tua app può richiedere le autorizzazioni per accedere a un sottoinsieme di dati di una persona. Facebook Login richiede l'autorizzazione advanced public_profile, che deve essere utilizzata da utenti esterni.
Autorizzazioni di lettura per il pulsante di Facebook Login
Per richiedere altre autorizzazioni di lettura, imposta la proprietà permissions sull'oggetto FBLoginButton .
// Extend the code sample from 6a. Add Facebook Login to Your Code
// Add to your viewDidLoad method:
loginButton.permissions = ["public_profile", "email"]
  
All'utente verrà richiesto di concedere all'app le autorizzazioni necessarie. Tieni presente che alcune autorizzazioni richiedono l'analisi degli accessi. Per maggiori informazioni sulle autorizzazioni, consulta Gestione delle autorizzazioni.

7. Passaggi successivi

Congratulazioni, hai aggiunto Facebook Login alla tua app per iOS! Consulta le altre pagine della documentazione per guide più avanzate.
Implementa una callback per l'eliminazione dei dati per rispondere alla richiesta delle persone di eliminare i propri dati da Facebook.
Aggiungi eventi alla tua app per visualizzare i dati statistici, misurare le prestazioni delle inserzioni e creare gruppi di pubblico per la targetizzazione delle inserzioni.
Scopri la nostra configurazione avanzata di Facebook Login per le app per iOS.
Gestisci i dati a cui può accedere la tua app attraverso Facebook Login.
Scopri come gestire gli errori restituiti dall'SDK di Facebook.
Testa e verifica il funzionamento del flusso di Facebook Login.
A seconda dei dati di Facebook che richiedi alle persone tramite Facebook Login, potresti dover inviare la tua app per l'analisi prima del lancio.
Per la creazione del tuo flusso di accesso, consulta Creazione manuale di un flusso di accesso.