Facebook Login untuk iOS - Tutorial Singkat

Kami telah membuat perubahan pada endpoint untuk Login Terbatas; sekarang Anda dapat mengaksesnya di limited.facebook.com

Saat orang masuk ke aplikasi Anda dengan Facebook, mereka dapat memberi izin ke aplikasi Anda sehingga Anda dapat mengambil informasi atau menjalankan tindakan di Facebook atas nama mereka.

Langkah-langkah berikut adalah untuk menambahkan Facebook Login ke proyek iOS Anda.

1. Masuk

Masuk ke Facebook untuk membuat aplikasi atau mendaftar sebagai developer.

2. Siapkan Lingkungan Pengembangan Anda

Siapkan lingkungan pengembangan Anda sebelum menggunakan Facebook Login untuk iOS.

Menggunakan Swift Package Manager (SPM)
  1. Di Xcode, klik File > Swift Packages > Add Package Dependency.
  2. Di dialog yang muncul, masukkan URL repositori: https://github.com/facebook/facebook-ios-sdk.
  3. Di Version, masukkan nomor versi Facebook SDK untuk iOS terbaru.
  4. Selesaikan permintaan untuk memilih pustaka yang ingin digunakan di proyek Anda.

3. Daftarkan dan Konfigurasikan Aplikasi Anda dengan Facebook

Daftarkan dan konfigurasikan aplikasi Anda sehingga Anda dapat menggunakan Facebook Login dengan menambahkan Pengidentifikasi Bundel Anda.

Anda harus login untuk menyelesaikan langkah ini.

4. Konfigurasikan Proyek Anda

Konfigurasikan file info.plist dengan snippet XML yang berisi data tentang aplikasi Anda.

Setelah Anda mengintegrasikan Facebook Login, Peristiwa Aplikasi tertentu dicatat dan dikumpulkan secara otomatis untuk Pengelola Peristiwa, kecuali Anda menonaktifkan Pencatatan Peristiwa Aplikasi Otomatis. Untuk detail tentang informasi apa saja yang dikumpulkan dan cara menonaktifkan pencatatan peristiwa aplikasi otomatis, lihat Pencatatan Peristiwa Aplikasi Otomatis.

  1. Klik kanan Info.plist, dan pilih Buka Sebagai ▸ Kode Sumber.
  2. Salin dan tempelkan snippet XML berikut ke badan file Anda (<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. Dalam <array><string> di kunci [CFBundleURLSchemes], ganti [APP_ID] dengan ID Aplikasi Anda.
  4. Dalam <string> di kunci FacebookAppID, ganti [APP_ID] dengan ID Aplikasi Anda.
  5. Di <string> dalam kunci FacebookClientToken, ganti CLIENT-TOKEN dengan nilai yang ditemukan di bawah Pengaturan > Lanjutan > Token Klien di Dasbor Aplikasi Anda.
  6. Dalam <string> di kunci FacebookDisplayName, ganti [APP_NAME] dengan nama aplikasi Anda.
  7. Untuk menggunakan dialog Facebook (misal: Login, Bagikan, Undangan Aplikasi, dsb.) yang dapat melakukan pengalihan aplikasi ke aplikasi Facebook, Info.plist aplikasi Anda juga perlu menyertakan hal berikut:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

Anda dapat langsung mengatur pengumpulan otomatis Peristiwa Aplikasi ke “true” atau “false” dengan menambahkan FacebookAutoLogAppEventsEnabled sebagai kode dalam Info.plist.

Proyek Anda harus menyertakan kemampuan Keychain Sharing agar login berfungsi di aplikasi Mac Catalyst.
  1. Pilih tombol + Capability di tab Signing & Capabilities ketika mengonfigurasi target aplikasi.
  2. Temukan dan pilih kemampuan Keychain Sharing.
  3. Pastikan bahwa kemampuan Keychain Sharing tercantum untuk target.

5. Hubungkan App Delegate Anda

Ganti kode di metode AppDelegate.swift dengan kode berikut. Kode ini menginisialisasi SDK saat aplikasi Anda diluncurkan, dan memungkinkan SDK menangani login dan membagikan dari aplikasi Facebook native saat Anda melakukan tindakan Login atau Membagikan. Jika tidak, pengguna harus masuk ke Facebook untuk menggunakan browser dalam aplikasi untuk login.
    
// 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 memindahkan fungsi URL ke SceneDelegate. Jika Anda menggunakan iOS 13, tambahkan metode berikut ke SceneDelegate sehingga operasi seperti login atau membagikan berfungsi sebagaimana dimaksudkan:
// 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. Tambahkan Facebook Login ke Kode Anda

Gunakan tombol Facebook Login di aplikasi iOS Anda.

6a. Tambahkan Facebook Login ke Kode Anda

Untuk menambahkan tombol Login berlogo Facebook ke aplikasi Anda, tambahkan snippet kode berikut ini ke pengontrol tampilan.
// 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)
    }
}
Pada titik ini, Anda harus dapat menjalankan aplikasi Anda dan masuk menggunakan tombol Facebook Login.

6b. Periksa Status Login Saat Ini

Aplikasi Anda hanya dapat memiliki satu orang yang masuk dalam satu waktu. Kami mewakili setiap orang yang masuk ke aplikasi Anda dengan AccessToken.current.
LoginManager mengatur token ini untuk Anda dan saat diatur ke AccessToken.current, secara otomatis akan menuliskannya ke cache keychain.
AccessToken berisi userID yang dapat Anda gunakan untuk mengidentifikasi pengguna.
Anda harus memperbarui pengontrol tampilan Anda untuk memeriksa token yang ada saat dimuat. Ini agar tidak menampilkan lagi alur login yang tidak diperlukan jika seseorang sudah memberi izin ke aplikasi Anda:
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. Minta Izin

Saat menggunakan Facebook Login, aplikasi Anda dapat meminta izin pada subset data seseorang. Facebook Login memerlukan izin public_profile lanjutan agar bisa digunakan oleh pengguna eksternal.
Izin Membaca untuk Tombol Facebook Login
Untuk meminta izin baca tambahan, atur properti izin di objek FBLoginButton .
// Extend the code sample from 6a. Add Facebook Login to Your Code
// Add to your viewDidLoad method:
loginButton.permissions = ["public_profile", "email"]
  
Pengguna akan diminta untuk memberi aplikasi Anda izin yang diminta. Perhatikan bahwa beberapa izin mengharuskan Tinjauan Login. Lihat Mengelola Izin untuk informasi selengkapnya tentang izin.

7. Langkah Berikutnya

Selamat, Anda sudah menambahkan Facebook Login ke aplikasi iOS Anda! Pastikan Anda melihat halaman dokumentasi kami lainnya untuk panduan lanjutan.
Terapkan panggilan balik penghapusan data guna menanggapi permintaan orang untuk menghapus data mereka dari Facebook.
Tambahkan peristiwa ke aplikasi Anda untuk melihat analitik, mengukur kinerja iklan, dan membuat pemirsa untuk penargetan iklan.
Lihat pengaturan lanjutan kami untuk Facebook Login untuk aplikasi iOS.
Mengelola data yang dapat diakses aplikasi Anda melalui Facebook Login.
Lihat cara menanggapi kesalahan yang ditampilkan oleh Facebook SDK.
Menguji dan memverifikasi bahwa alur Facebook Login Anda berfungsi.
Tergantung data Facebook yang Anda minta dari orang yang menggunakan Facebook Login, Anda mungkin harus mengajukan aplikasi Anda untuk ditinjau sebelum diluncurkan.
Untuk membuat alur login Anda sendiri, lihat Membuat Alur Login Secara Manual.