Introdução ao SDK do Facebook para iOS

Este guia mostra como integrar seu app iOS com o Facebook usando o SDK do Facebook para iOS.

Veja os recursos que o SDK do Facebook habilita:

Antes de começar

Você precisará do seguinte:

Etapa 1: configurar o ambiente de desenvolvimento

  1. No Xcode, clique em File > Swift Packages > Add Package Dependency.
  2. No diálogo exibido, insira a URL do repositório: https://github.com/facebook/facebook-ios-sdk.
  3. Em Version, selecione Up to Next Major e a opção padrão.
  4. Realize as ações indicadas para selecionar as bibliotecas que deseja usar no seu projeto.
  5. Se você quiserAdicione este pacote ao projeto

    Permitir que o app use os serviços do Facebook

    FBSDKCoreKit

    Permitir que usuários entrem no app e que o app solicite permissões de acesso de dados

    FBSDKLoginKit

    Permitir que o app compartilhe conteúdo no Facebook

    FBSDKShareKit

    Permitir que os usuários entrem no app para habilitar o engajamento e promover recursos sociais

    FBSDKGamingServicesKit

Etapa 2: configurar o projeto

Configure o arquivo Info.plist com um trecho em XML que contenha dados sobre o app.

Depois que você integrar o Login do Facebook, alguns eventos do app serão automaticamente registrados e coletados para o Gerenciador de Eventos, a menos que você desabilite o registro automático. Para saber mais sobre as informações coletadas e sobre como desabilitar o registro automático de eventos, consulte Registro automático de eventos do app.

  1. Clique com o botão direito do mouse em Info.plist e selecione Abrir como ▸ Código-fonte.
  2. Copie e cole o seguinte trecho em XML no corpo do arquivo (<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. Em <array><string>, na chave [CFBundleURLSchemes], substitua APP-ID pelo ID do app.
  4. Em <string>, na chave FacebookAppID, substitua APP-ID pelo ID do app.
  5. Em <string>, na chave FacebookClientToken, substitua CLIENT-TOKEN pelo valor encontrado em Configurações > Avançado > Token de cliente no Painel de Apps.
  6. Em <string>, na chave FacebookDisplayName, substitua APP-NAME pelo nome do app.
  7. Para usar um diálogo do Facebook (por exemplo, o diálogo Entrar, o diálogo de compartilhamento, Convites para app do Facebook e assim por diante) que possa executar uma mudança para apps do Facebook, o Info.plist do app precisará incluir isto também:
    <key>LSApplicationQueriesSchemes</key><array><string>fbapi</string><string>fb-messenger-share-api</string></array>

É possível definir o processo de coleta automática de eventos do app como "verdadeiro" ou "falso" adicionando FacebookAutoLogAppEventsEnabled como uma chave em Info.plist.

É necessário que o projeto tenha o recurso Keychain Sharing para que o login funcione em apps do Mac Catalyst.

  1. Clique no botão + Capability na aba Signing & Capabilities ao configurar o alvo do app.
  2. Encontre e selecione o recurso Keychain Sharing.
  3. Verifique se o recurso Keychain Sharing está listado para o direcionamento.

Etapa 3: conectar o App Delegate

Substitua o código no método AppDelegate.swift pelo código a seguir. Esse código inicializa o SDK quando seu app é iniciado e permite que o SDK gerencie logins e compartilhamentos do app nativo do Facebook quando você executa uma ação Entrar ou Compartilhar. Caso contrário, o usuário precisará estar conectado ao Facebook para fazer login pelo navegador no app.

  
// AppDelegate.swift
import UIKit
import FBSDKCoreKit

@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]
        )
    }  
}

O iOS 13 moveu a funcionalidade da URL de abertura para SceneDelegate. Ao usar essa versão do iOS, adicione o seguinte método a SceneDelegate para que as operações de login e compartilhamento funcionem conforme o esperado:

 
// SceneDelegate.swift
import FBSDKCoreKit
  ...
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]
    )
}

Etapa 4: criar e executar o projeto no simulador

No Xcode, selecione um simulador para iOS e clique em Run. O Xcode cria seu projeto e inicializa a versão mais recente do seu app em execução no Simulador.

Etapa 5: ver os resultados no Gerenciador de Eventos


O Gerenciador de Eventos mostra os eventos que você envia ao Facebook. Caso seja a primeira vez que você lança o aplicativo com este código, talvez seja necessário esperar pelo menos 20 minutos para que os eventos sejam exibidos.

Observação: pode levar até 20 minutos para que os eventos sejam exibidos no painel.

Próximas etapas

Para saber como implementar Eventos do App e outros produtos do Facebook, clique em um dos botões abaixo.

Como compartilhar no iOSAdicionar Login do FacebookAdicionar Eventos do AppUsar a Graph API
Configurações avançadas