Introducción al SDK de Facebook para iOS

En esta guía se muestra cómo integrar tu aplicación de iOS con Facebook mediante el SDK de Facebook para iOS.

A partir de la versión 13.0 del SDK, se requiere un identificador de acceso del cliente para todas las llamadas a la API Graph.

El SDK de Facebook permite lo siguiente:

Antes de empezar

Necesitarás lo siguiente:

Paso 1: Configurar el entorno de desarrollo

  1. En Xcode, haz clic en File > Swift Packages > Add Package Dependency (Archivo > Paquetes Swift > Añadir dependencia de paquetes).
  2. En el cuadro de diálogo que aparece, escribe la URL del repositorio: https://github.com/facebook/facebook-ios-sdk.
  3. En Version (Versión), selecciona Up to Next Major (Hasta la siguiente versión principal) y elige la opción predeterminada.
  4. Sigue las indicaciones para seleccionar las bibliotecas que quieras usar en el proyecto.
  5. Acciones opcionalesAñadir este paquete al proyecto

    Permitir a la aplicación usar los servicios de Facebook

    FacebookCore

    Permitir a los usuarios iniciar sesión en la aplicación y permitir a la aplicación pedir permisos para acceder a los datos

    FacebookLogin

    Permitir a la aplicación compartir contenido en Facebook

    FacebookShare

    Permitir a los usuarios iniciar sesión en la aplicación para activar la interacción y promover las funciones sociales

    FacebookGamingServices

Paso 2: Configurar el proyecto

Configura el archivo Info.plist con un fragmento de código XML que contenga datos sobre tu aplicación.

Al integrar el inicio de sesión con Facebook, determinados eventos de la aplicación se registran y recopilan automáticamente para el Administrador de eventos, a menos que desactives el registro automático de eventos de la aplicación. Para obtener información más detallada sobre los datos que se recopilan y cómo desactivar el registro automático de eventos de la aplicación, consulta Registro automático de eventos de la aplicación.

  1. Haz clic con el botón derecho en el archivo Info.plist y elige Open as ▸ Source Code (Abrir como ▸ Código fuente).
  2. Copia y pega el siguiente fragmento de código XML en el cuerpo de tu archivo (<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. En <array><string>, en la clave [CFBundleURLSchemes], reemplaza APP-ID por el identificador de la aplicación.
  4. En <string>, en la clave FacebookAppID, reemplaza APP-ID por el identificador de la aplicación.
  5. En <string>, en la clave FacebookClientToken, reemplaza CLIENT-TOKEN por el valor que puedes encontrar en el panel de aplicaciones bajo Configuración > Opciones avanzadas > Identificador de cliente.
  6. En <string>, en la clave FacebookDisplayName, reemplaza APP-NAME por el nombre de la aplicación.
  7. Para usar los cuadros de diálogo de Facebook (p. ej., de inicio de sesión, contenido compartido, invitaciones a la aplicación, etc.) que pueden cambiar a las aplicaciones de Facebook, el elemento Info.plist de la aplicación también debe incluir lo siguiente:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

Para establecer directamente la recopilación automática de eventos de la aplicación en “true” o “false”, añade FacebookAutoLogAppEventsEnabled como clave en Info.plist.

El proyecto deberá incluir la función de uso compartido de cadenas de claves para que el inicio de sesión funcione en aplicaciones de Mac Catalyst.
  1. Selecciona el botón + Capability (+ Función) en la pestaña Signing & Capabilities (Firma y funciones) al configurar el destino de la aplicación.
  2. Busca y selecciona la función Keychain Sharing (Uso compartido de cadenas de claves).
  3. Asegúrate de que la función Keychain Sharing (Uso compartido de cadenas de claves) se enumera para el destino.

Paso 3: Conectar el delegado de la aplicación

Sustituye el código del método AppDelegate.swift por el código siguiente. Este código inicializa el SDK cuando se inicia tu aplicación y permite que el SDK gestione los inicios de sesión y el uso compartido de la aplicación de Facebook nativa cuando realizas la acción de iniciar sesión o compartir contenido. De lo contrario, el usuario debe tener la sesión iniciada en Facebook para usar el navegador en la aplicación a fin de iniciar sesión.
    
// 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 trasladado la funcionalidad de apertura de URL a SceneDelegate. Si usas iOS 13, añade el método siguiente a SceneDelegate para que operaciones como el inicio de sesión o la función para compartir contenido funcionen según lo 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]
    )
}

Paso 4: Compilar el proyecto y ejecutarlo en el simulador

En Xcode, selecciona una simulador de iOS y haz clic en Ejecutar. Xcode compila el proyecto y, a continuación, inicia la versión más reciente de tu aplicación en el simulador.

Paso 5: Ver los resultados en el administrador de eventos


El Administrador de eventos muestra los eventos que envías a Facebook. Si es la primera vez que inicias la aplicación con este código, es posible que tengas que esperar 20 minutos como mínimo para que aparezcan los eventos.
Nota: Los eventos pueden tardar hasta 20 minutos en mostrarse en el panel.

Siguientes pasos

Para obtener información sobre cómo implementar los eventos de la aplicación y otros productos de Facebook en la aplicación, haz clic en uno de los botones que se incluyen a continuación.

Compartir en iOSAñadir inicio de sesión con FacebookAñadir eventos de la aplicaciónUsar la API Graph
Configuración avanzada