我們已對「限制登入」端點進行變更,現在可以前往 limited.facebook.com 使用
當用戶使用 Facebook 登入您的應用程式,用戶可以將權限授予您的應用程式,讓您能代表用戶擷取資訊或者在 Facebook 執行操作。
下列步驟是將「Facebook 登入」加入 iOS 專案的步驟。
在使用 iOS 版「Facebook 登入」之前,請先設定開發環境。
使用 Swift 套件管理工具(SPM)
| 如果您想 | 將此套件新增至專案 |
|---|---|
允許應用程式使用 Facebook 服務 |
|
允許用戶登入應用程式,並讓應用程式要求存取資料的權限 |
|
允許應用程式在 Facebook 上分享內容 |
|
允許用戶登入您的應用程式,以啟用互動並推廣社交功能 |
|
註冊並配置應用程式,以便新增套件識別資料來使用「Facebook 登入」。
套件識別碼應顯示在底下方塊中。如果方塊內是空白的,請在 Xcode 專案的 iOS 應用程式目標中找到套件識別碼,然後將其貼入底下的方塊。
您可以透過設定頁面上的 iOS 區段來變更套件識別碼。
應用程式設定 > 基本 > + 平台 > iOS
使用包含您應用程式資料的 XML 程式碼片段來設定 Info.plist 檔案。
整合「Facebook 登入」後,除非停用自動應用程式事件記錄功能,否則系統會自動記錄並蒐集特定應用程式事件,以供事件管理工具使用。尤其在韓國啟用應用程式時,您可選擇停用自動應用程式事件記錄功能,這點需要特別留意。如需深入瞭解系統會蒐集哪些資訊,以及如何停用自動應用程式事件記錄功能,請參閱自動應用程式事件記錄功能。
Info.plist 上點擊右鍵,然後選擇以原始碼形式開啟。<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>[CFBundleURLSchemes] 索引鍵的 <array><string> 中,將 APP-ID 替換為您的應用程式編號。FacebookAppID 索引鍵的 <string> 中,將 APP_ID 替換為您的應用程式編號。FacebookClientToken 索引鍵的 <string> 中,將 CLIENT-TOKEN 替換為在您應用程式主控板中設定 > 進階 > 用戶端權杖下找到的數值。
FacebookDisplayName 索引鍵的 <string> 中,將 APP-NAME 替換為您的應用程式名稱。
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 應用程式中運作。
以下列程式碼取代 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]
)
}在 iOS 應用程式中使用「Facebook 登入」按鈕。
6a. 將「Facebook 登入」新增至程式碼
若要將 Facebook 登入按鈕加入應用程式,請將下列程式碼片段加入至檢視控制器。
// 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)
}
}在此階段,您應可執行您的應用程式,並使用「Facebook 登入」按鈕來登入。
6b. 檢查目前的登入狀態
應用程式一次只能有一位用戶登入。我們代表使用 AccessToken.current 登入您應用程式的每位用戶。
LoginManager 會為您設定此權杖,當它設定 AccessToken.current 時,還會自動將其寫入金鑰鏈存放區。
AccessToken 包含可用於識別用戶的 userID。
您應該更新檢視控制器,於載入時檢查現有權杖。這麼一來,若用戶已授權給您的應用程式,就能避免再次顯示不必要的登入流程:
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. 要求權限
使用「Facebook 登入」時,您的應用程式可以要求提供有關個人資料子集的權限。Facebook 登入需具備進階 public_profile 權限,才能供外部用戶使用。
Facebook 登入按鈕的讀取權限
如需要求其他讀取權限,請在 FBLoginButton 物件設定 permissions 屬性。
// Extend the code sample from 6a. Add Facebook Login to Your Code // Add to your viewDidLoad method: loginButton.permissions = ["public_profile", "email"]
用戶會看見您應用程式要求授權的提示。請注意,某些權限將需要「登入審查」。如需權限的詳細資訊,請參閱管理權限。
恭喜,您已經將「Facebook 登入」新增至 iOS 應用程式!請務必查看其他說明文件頁面,以取得更多進階指南。
實作資料刪除回呼實作資料刪除回呼,以回應用戶從 Facebook 刪除其資料的要求。
新增應用程式事件在應用程式中加入事件,即可檢視分析資料、衡量廣告成效,以及建立用於廣告目標設定的廣告受眾。
進階主題和設定查看 iOS 應用程式的「Facebook 登入」進階設定。
權限管理您的應用程式可透過「Facebook 登入」存取的資料。
處理錯誤查看如何回應 Facebook SDK 傳回的錯誤。
應用程式審查視您要求使用「Facebook 登入」的用戶所提供的 Facebook 資料而定,您可能需要在應用程式上線前,將應用程式提交審查。
建立您專屬的登入流程若要建立您專屬的登入流程,請參閱「手動建立登入流程」。