Primeros pasos con el SDK para iOS

En esta guía, se mostrará cómo integrar tu app de iOS con Facebook mediante el SDK de Facebook para iOS.

A partir de la versión 13.0 del SDK, debes proporcionar un token de cliente en todas las llamadas a la API Graph.

El SDK de Facebook permite lo siguiente:

Antes de empezar

Necesitarás lo siguiente:

Paso 1: Configura el entorno de desarrollo

  1. En Xcode, haz clic en File > Swift Packages > Add Package Dependency (Archivo > Paquetes de Swift > Agregar dependencia de paquetes).
  2. En el cuadro de diálogo que aparece, ingresa 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 la opción predeterminada.
  4. Completa las solicitudes para seleccionar las bibliotecas que deseas usar en el proyecto.
  5. Si quieresAgrega esta paquete a tu proyecto

    Permite que tu app use los servicios de Facebook

    FacebookCore

    Permite que los usuarios inicien sesión en tu app y para que les solicite permisos de acceso a datos

    FacebookLogin

    Permite que tu app comparta contenido en Facebook

    FacebookShare

    Permite a los usuarios iniciar sesión en la app para activar las funciones sociales de interacción y promoción

    FacebookGamingServices

Paso 2: Configura el proyecto

Configura el archivo Info.plist con un fragmento de XML que contiene datos sobre tu app.

Después de que integras el inicio de sesión con Facebook, se registran y recopilan automáticamente determinados eventos de la app en el administrador de eventos, a menos que desactives el registro automático de eventos. Para obtener información sobre qué información se recopila y cómo desactivar el registro de eventos de la app de manera automática, consulta Registro automático de eventos de la app.

  1. Haz clic con el botón derecho en info.plist y elige Open As ▸ Source Code.
  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> de la clave [CFBundleURLSchemes], reemplaza [APP-ID] con el identificador de la app.
  4. En <string> de la clave FacebookAppID, reemplaza [APP-ID] con el identificador de la app.
  5. En <string> de la clave FacebookClientToken, reemplaza CLIENT-TOKEN con el valor encontrado en Configuración > Avanzado > Token del cliente del panel de apps.
  6. En <string> de la clave FacebookDisplayName, reemplaza [APP-NAME] por el nombre de la app.
  7. Para usar los cuadros de diálogo de Facebook (por ejemplo, inicio de sesión, contenido compartido, invitaciones a la app, etc.) con los que se puede cambiar de una app a las apps de Facebook, el archivo Info.plist de tu solicitud también debe incluir la siguiente información:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

Es posible configurar directamente la recopilación automática de eventos de la app en "verdadero" o "falso" si se agrega FacebookAutoLogAppEventsEnabled como clave en Info.plist.

El proyecto deberá incluir la función "Keychain Sharing" para que el inicio de sesión funcione en las apps de Mac Catalyst.
  1. Selecciona el botón + Capability en la pestaña Signing & Capabilities cuando configures el objetivo de la app.
  2. Busca y selecciona la función Keychain Sharing.
  3. Asegúrate de que la función Keychain Sharing esté disponible para el objetivo.

Paso 3: Conecta el delegado de la app

Reemplaza el código en el método AppDelegate.swift con el siguiente código. Este código inicializa el SDK cuando se inicia tu app y permite al SDK administrar inicios de sesión y compartir contenido desde la app nativa de Facebook cuando inicias sesión o compartes algo. De lo contrario, el usuario debe iniciar sesión en Facebook a fin de usar el navegador de la app para 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 movió la funcionalidad de la URL de apertura a SceneDelegate. Si usas iOS 13, agrega el siguiente método a SceneDelegate para que las operaciones como el inicio de sesión o el uso compartido 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: Compila y ejecuta el proyecto en el simulador

En Xcode, selecciona un simulador para iOS y haz clic en Ejecutar. Xcode crea el proyecto y ejecuta la versión más reciente de tu app que esté ejecutándose en el simulador.

Paso 5: Consulta los resultados en el administrador de eventos


En el administrador de eventos, se muestran los eventos que envías a Facebook. Si es la primera vez que inicias la app con este código, es posible que tengas que esperar al menos 20 minutos hasta que aparezcan los eventos.
Nota: Es posible que los eventos tarden 20 minutos en aparecer en el panel.

Siguientes pasos

Para obtener información sobre cómo implementar eventos de la app y otros productos de Facebook en tu app, haz clic en uno de los siguientes botones.

Compartir en iOSAgregar inicio de sesión con FacebookAgregar eventos de la appUsar API Graph
Configuración avanzada