Facebook Login pour iOS : démarrage rapide

Nous avons modifié les points de terminaison pour la connexion limitée. Cette fonction est désormais disponible à l’adresse limited.facebook.com.

Lorsque les utilisateur·ices se connectent à votre application avec Facebook, ils et elles peuvent autoriser votre application à récupérer des informations sur leur compte ou exécuter des actions sur Facebook en leur nom.

Les étapes suivantes permettent d’ajouter Facebook Login à votre projet iOS.

1. Connexion

Veuillez vous connecter à Facebook pour créer des apps ou vous inscrire en tant que développeur.

2. Configurer votre environnement de développement

Configurez votre environnement de développement avant d’utiliser Facebook Login pour iOS.

Utilisation de Swift Package Manager (SPM)
  1. Dans Xcode, cliquez sur File > Swift Packages > Add Package Dependency (Fichier > Packages Swift > Ajouter une dépendance de package).
  2. Dans la boîte de dialogue qui s’affiche, saisissez l’URL de dépôt suivante : https://github.com/facebook/facebook-ios-sdk.
  3. Sous Version, saisissez le numéro de version du dernier SDK Facebook pour iOS.
  4. Suivez les invites de manière à sélectionner les bibliothèques que vous souhaitez utiliser dans votre projet.

3. Enregistrer et configurer votre application avec Facebook

Ajoutez l’identifiant du pack pour enregistrer et configurer votre application afin d’utiliser Facebook Login.

Vous devez vous connecter pour finaliser cette étape.

4. Configurer votre projet

Configurez le fichier Info.plist avec un extrait XML contenant des données sur votre application.

Après avoir intégré Facebook Login, certains évènements d’application sont automatiquement consignés et collectés pour le Gestionnaire d’évènements, à moins que vous ne désactiviez la consignation automatique des évènements d’application. Pour en savoir plus sur les informations collectées et sur la façon de désactiver la consignation automatique des évènements d’application, consultez la page Consignation automatique des évènements d’application.

  1. Faites un clic droit sur Info.plist et sélectionnez Open As ▸ Source Code (Ouvrir en tant que code source).
  2. Copiez et collez l’extrait XML suivant dans le corps de votre fichier (<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. Dans la chaîne <array><string> de la clé [CFBundleURLSchemes], remplacez APP-ID par votre ID d’application.
  4. Dans la chaîne <string> de la clé FacebookAppID, remplacez APP-ID par votre ID d’application.
  5. Dans la chaîne <string> de la clé FacebookClientToken, remplacez CLIENT-TOKEN par la valeur indiquée sous Paramètres > Avancé > Token client dans votre Espace App.
  6. Dans la chaîne <string> de la clé FacebookDisplayName, remplacez APP-NAME par le nom de votre application.
  7. Pour utiliser l’une des boîtes de dialogue Facebook (telles que Connexion, Partager, Invitations à une app, etc.) qui peuvent effectuer un changement d’application vers des applications Facebook, le fichier Info.plist de votre application doit également inclure ce qui suit :
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

Vous pouvez directement activer ou désactiver la collecte automatique des évènements d’application en ajoutant la clé FacebookAutoLogAppEventsEnabled et la valeur « true » ou « false » dans Info.plist.

Votre projet devra inclure la fonctionnalité de partage de trousseau pour que la connexion fonctionne dans les applications Mac Catalyst.
  1. Sélectionnez le bouton + Capability (+ fonctionnalités) sur l’onglet Signing & Capabilities (Signature et fonctionnalités) lors de la configuration de votre application cible.
  2. Trouvez et sélectionnez la fonctionnalité de partage de trousseau.
  3. Assurez-vous que la fonctionnalité de partage de trousseau est répertoriée pour la cible.

5. Connecter votre App Delegate

Remplacez le code dans la méthode AppDelegate.swift avec le code suivant. Ce code initialise le SDK au lancement de votre application et lui permet de gérer les connexions et le partage depuis l’application native Facebook lorsque vous exécutez une action de type « Se connecter » ou « Partager ». Autrement, l’utilisateur ou l’utilisatrice doit être connecté·e à Facebook pour pouvoir utiliser le navigateur intégré à l’application afin d’ouvrir une session.
    
// 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 a déplacé la fonctionnalité d’ouverture de l’URL dans SceneDelegate. Si vous utilisez iOS 13, ajoutez la méthode suivante à votre SceneDelegate afin que des opérations comme la connexion ou le partage fonctionnent comme prévu :
// 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. Ajouter Facebook Login à votre code

Utilisez le bouton Facebook Login dans votre application iOS.

6a. Ajouter Facebook Login à votre code

Pour ajouter un bouton Facebook Login à votre app, ajoutez l’extrait de code suivant à un contrôleur d’affichage.
// 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)
    }
}
À ce stade, vous devriez pouvoir exécuter votre app et vous connecter avec le bouton Facebook Login.

6b. Vérifier l’état de la connexion

Votre application ne peut prendre en charge qu’un utilisateur connecté à la fois. Chaque utilisateur connecté à votre application est représenté avec le token AccessToken.current.
Le LoginManager définit ce token pour vous, et lorsqu’il définit le token AccessToken.current, il l’écrit aussi automatiquement dans le magasin du trousseau.
Le token AccessToken contient l’ID userID que vous pouvez utiliser pour identifier l’utilisateur.
Vous devez actualiser votre contrôleur d’affichage pour vérifier qu’un token est présent lors du chargement. Cela évite de montrer à nouveau le processus de connexion si quelqu’un a déjà accordé des autorisations à votre 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. Demander des autorisations

Lorsque vous utilisez Facebook Login, votre application peut demander aux utilisateurs et utilisatrices l’autorisation d’accéder à un sous-ensemble de leurs données. Facebook Login nécessite une autorisation avancée public_profile, pour être utilisé par des utilisateurs et utilisatrices externes.
Autorisations de lecture pour le bouton Facebook Login
Pour demander des autorisations de lecture supplémentaires, définissez la propriété permissions sur l’objet FBLoginButton .
// Extend the code sample from 6a. Add Facebook Login to Your Code
// Add to your viewDidLoad method:
loginButton.permissions = ["public_profile", "email"]
  
L’utilisateur ou utilisatrice sera invité·e à accorder les autorisations demandées à votre application. Notez que certaines autorisations requièrent un examen de connexion. Consultez Gestion des autorisations pour plus d’informations sur les autorisations.

7. Étapes suivantes

Félicitations, vous avez ajouté Facebook Login à votre app iOS ! Pensez à consulter nos autres pages de documentation pour obtenir davantage d’instructions détaillées.
Implémentez un rappel de suppression de données pour répondre à la demande émanant de personnes souhaitant supprimer leurs données de Facebook.
Ajoutez des évènements à votre app pour consulter les statistiques de vos publicités, mesurer leurs performances et créer des audiences pour le ciblage publicitaire.
Consultez notre configuration avancée de Facebook Login pour les apps iOS.
Gérez les données auxquelles votre app a accès par l’intermédiaire de Facebook Login.
Consultez les solutions aux erreurs envoyées par le SDK Facebook.
Testez votre processus Facebook Login afin de vérifier qu’il fonctionne.
Selon les données Facebook que vous demandez auprès des personnes qui utilisent Facebook Login, il vous faudra peut-être soumettre votre app pour examen avant son lancement.
Pour créer votre propre processus de connexion, consultez Créer manuellement un processus de connexion.