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.

A partir da versão 13.0 do SDK, um token de cliente será necessário para todas as chamadas da Graph API.

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

    FacebookCore

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

    FacebookLogin

    Permitir que o app compartilhe conteúdo no Facebook

    FacebookShare

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

    FacebookGamingServices

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 pela opção exibida abaixo. 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 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]
        )
    }  
}

O iOS 13 moveu a funcionalidade da URL de abertura para SceneDelegate. Se estiver usando o iOS 13, adicione o seguinte método ao SceneDelegate para que operações como login ou compartilhamento funcionem conforme esperado:
// 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]
    )
}

Etapa 4: criar e executar o projeto no simulador

No Xcode, selecione um simulador de iOS e clique em Executar. O Xcode cria seu projeto e inicializa a versão mais recente do seu aplicativo 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