Facebook iOS SDK 新手指南

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

由 SDK v13.0 版開始,您必須為所有對 Graph API 的呼叫提供用戶端憑證

Facebook SDK 允許:

準備工作

您需要準備下列項目:

第 1 步:設定開發環境

  1. 在 Xcode 中,點擊 File > Swift Packages > 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.plistFacebookAutoLogAppEventsEnabled 加為鍵,以直接將自動蒐集應用程式事件的功能設為「true」或「false」。

您的專案需要包含「鑰匙圈共享」功能,才能登入並在 Mac Catalyst 應用程式運作。
  1. 配置應用程式目標時,選擇登入和功能分頁中的 + 功能按鈕。
  2. 找出並選擇鑰匙圈共享功能。
  3. 確保目標已列出鑰匙圈共享功能。

第 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 登入功能新增應用程式事件使用 Graph API
進階配置