開始使用 Facebook iOS SDK

本指南說明如何使用 Facebook iOS SDK 將您的 iOS 應用程式與 Facebook 整合。

自 SDK 13.0 版開始,對圖形 API 發出的所有呼叫都需要用戶端權杖

Facebook SDK 可用於:

準備工作

必備資料:

步驟 1:設定開發環境

  1. 在 Xcode 中,依序點擊 File(檔案)> Swift Packages(Swift 套件)> Add Package Dependency(新增套件相依性)
  2. 在顯示的對話方塊中,輸入存放庫網址:https://github.com/facebook/facebook-ios-sdk
  3. Version(版本)中,選擇 Up to Next Major(移至下一個主要版本)然後預設選項。
  4. 完成提示以選擇要在專案中使用的程式庫。
  5. 如果您想將此套件新增至專案

    允許應用程式使用 Facebook 服務

    FacebookCore

    允許用戶登入應用程式,並讓應用程式要求存取資料的權限

    FacebookLogin

    允許應用程式在 Facebook 上分享內容

    FacebookShare

    允許用戶登入您的應用程式,以啟用互動並推廣社交功能

    FacebookGamingServices

步驟 2:設定專案

使用包含您應用程式資料的 XML 程式碼片段來設定 Info.plist 檔案。

整合 Facebook 登入後,除非停用自動應用程式事件記錄功能,否則系統會自動記錄並蒐集某些應用程式事件,以供事件管理工具使用。如需深入瞭解系統會蒐集哪些資訊,以及如何停用自動應用程式事件記錄功能,請參閱自動應用程式事件記錄功能

  1. Info.plist 上點擊右鍵,然後選擇以原始碼形式開啟
  2. 複製以下 XML 程式碼片段並貼至檔案主體(<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. [CFBundleURLSchemes] 索引鍵的 <array><string> 中,將 APP-ID 替換為您的應用程式編號。
  4. FacebookAppID 索引鍵的 <string> 中,將 APP-ID 替換為您的應用程式編號。
  5. FacebookClientToken 索引鍵的 <string> 中,將 CLIENT-TOKEN 替換為您應用程式主控板中「設定」>「進階」>「用戶端權杖」下找到的數值。
  6. FacebookDisplayName 索引鍵的 <string> 中,將 APP-NAME 替換為您的應用程式名稱。
  7. 若要使用任何可從某應用程式切換到 Facebook 應用程式的 Facebook 對話方塊(例如:登入、分享、應用程式邀請等等),您應用程式的 Info.plist 也需要執行下列動作:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

您可以在 Info.plist 中新增 FacebookAutoLogAppEventsEnabled 作為鍵值,直接將應用程式事件的自動蒐集功能設為「true」或「false」。

您的專案必須包含 Keychain Sharing(鑰匙圈分享)功能,才能讓登入在 Mac Catalyst 應用程式中運作。
  1. 設定應用程式目標時,請在「Signing & Capabilities(簽署和功能)」頁籤中選擇「+ Capability(+ 功能)」按鈕。
  2. 找到並選擇 Keychain Sharing 功能。
  3. 確認系統針對目標列出 Keychain Sharing 功能。

步驟 3:連結應用程式委派

要取代程式碼時,請使用 AppDelegate.swift 方法,並使用下列程式碼。此程式碼會在應用程式啟動時初始化 SDK,並在您執行「登入」或「分享」動作時,讓 SDK 處理原生 Facebook 應用程式的登入和分享。否則,用戶必須登入 Facebook 才能使用應用程式內瀏覽器進行登入。
    
// 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 將開啟網址功能移至 SceneDelegate。如果使用的是 iOS 13,請將下列方法新增至您的 SceneDelegate 以便如您所想地順利完成登入或分享功能等操作:
// 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]
    )
}

步驟 4:建立專案,然後在模擬器中執行專案

在 Xcode 中,選擇 iOS 模擬器並點擊 Run(執行)。Xcode 會建立您的專案,然後啟動在模擬器中執行的最新應用程式版本。

步驟 5:在事件管理工具中查看結果


事件管理工具會顯示您傳送到 Facebook 的事件。如果這是您第一次使用此程式碼啟動應用程式,可能需要等待至少 20 分鐘才會顯示事件。
注意:事件最多可能需要 20 分鐘才會顯示在主控板上。

後續步驟

若要瞭解如何在應用程式中實作應用程式事件和其他 Facebook 產品,請點擊底下的按鈕。

在 iOS 中分享新增 Facebook 登入新增應用程式事件使用圖形 API
進階設定