Login do Facebook para iOS – Início rápido

Fizemos uma alteração nos pontos de extremidade para Login Limitado. Agora, é possível acessá-lo em limited.facebook.com

Ao entrar no seu app com o Facebook, as pessoas podem conceder permissões ao app para que você possa recuperar informações ou executar ações no Facebook em nome delas.

As etapas a seguir descrevem como adicionar o Login do Facebook ao seu projeto para iOS.

1. Fazer o login

Entre no Facebook para criar aplicativos ou se registrar como um desenvolvedor.

2. Configurar seu ambiente do desenvolvedor

Configure o ambiente de desenvolvimento antes de usar o Login do Facebook para iOS.

Como usar o Gerenciador de Pacote do Swift (SPM)
  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, insira o número da versão do SDK do Facebook para iOS mais recente.
  4. Realize as ações indicadas para selecionar as bibliotecas que deseja usar no seu projeto.

3. Registrar e configurar seu app com o Facebook

Registre e configure seu app para usar o Login do Facebook adicionando o identificador do pacote.

Você precisa fazer o login para concluir esta etapa.

4. Configurar seu 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.

5. Conectar o representante do app

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

6. Adicionar o Login do Facebook ao seu código

Use o botão de Login do Facebook no seu app iOS.

6a. Adicionar o Login do Facebook ao seu código

Para incluir um botão Entrar com a marca do Facebook no seu aplicativo, adicione o trecho de código a seguir a um controle de visualização.
// 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)
    }
}
Neste ponto, você poderá executar o aplicativo e entrar usando o botão Entrar do Facebook.

6b. Verificar o status atual de login

O aplicativo pode ter apenas uma pessoa conectada por vez. Representamos cada pessoa conectada ao aplicativo com AccessToken.current.
O LoginManager define esse token para você e, ao definir AccessToken.current, ele também o grava automaticamente no armazenamento do gerenciador de senhas.
O AccessToken contém a userID, que pode ser usada para identificar o usuário.
Atualize o controle de visualização para verificar se há um token existente no carregamento. Isso evitará que o fluxo de login seja exibido novamente sem necessidade, caso alguém já tenha concedido permissões ao seu aplicativo:
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. Solicitar as permissões

Com o Login do Facebook, o seu app pode solicitar permissões em um subconjunto dos dados de uma pessoa. Para ser usado por usuários externos, o Login do Facebook exige a permissão avançada public_profile.
Permissões de leitura para o botão Entrar do Facebook
Para solicitar permissões de leitura adicionais, defina a propriedade permissions no objeto FBLoginButton .
// Extend the code sample from 6a. Add Facebook Login to Your Code
// Add to your viewDidLoad method:
loginButton.permissions = ["public_profile", "email"]
  
O usuário será solicitado a conceder as permissões necessárias ao app. Algumas permissões exigirão uma análise de login. Consulte Como gerenciar permissões no iOS para obter mais informações sobre as permissões.

7. Próximas etapas

Parabéns, você adicionou o login no Facebook no seu app do iOS! Não deixe de consultar as outras páginas da nossa documentação para ver guias mais avançados.
Implemente um retorno de chamada de exclusão de dados para responder a solicitações de pessoas que desejam excluir os próprios dados do Facebook.
Adicione eventos ao seu app para visualizar análises, medir o desempenho do anúncio e criar públicos para direcionamento de anúncios.
Consulte nossa configuração avançada do Login do Facebook para apps do iOS.
Gerencie os dados a que seu app terá acesso por meio do Login do Facebook.
Verifique como responder aos erros retornados pelo SDK do Facebook.
Teste e verifique seu funcionamento do fluxo do seu Login do Facebook.
Dependendo dos dados do Facebook que você solicitou das pessoas usando o Login do Facebook, talvez você precise enviar o app para análise antes do lançamento.
Para criar o seu próprio fluxo de login, consulte Criar manualmente um fluxo de login.