首先,確保你已經在Facebook開發者平台上建立了一個應用程式,並且取得了應用程式的App ID。接下來,你需要將Facebook的SDK整合到你的專案中。你可以使用CocoaPods或Carthage來安裝SDK。在這個例子中,我將使用CocoaPods。
首先,在終端機中進入你的專案目錄,然後執行以下指令來建立一個Podfile:
bash
Copy code
pod init
然後,編輯Podfile檔案,加入Facebook SDK的相依性:
ruby
Copy code
platform :ios, '13.0'
target 'YourAppTarget' do
use_frameworks!
pod 'FacebookLogin'
pod 'FacebookCore'
end
儲存並關閉檔案,然後執行以下指令來安裝相依性:
bash
Copy code
pod install
安裝完成後,打開你的Xcode專案檔案(.xcworkspace),然後開始實作Facebook登入功能。
首先,在你的AppDelegate.swift檔案中匯入Facebook SDK:
import FacebookCore
import FacebookLogin
然後,在application(_:didFinishLaunchingWithOptions:)方法中,加入以下程式碼來設定Facebook SDK:
swift
Copy code
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
接著,在你希望觸發Facebook登入的地方,例如一個按鈕的點擊事件中,加入以下程式碼:
let loginManager = LoginManager()
loginManager.logIn(permissions: [.publicProfile, .email], viewController: self) { loginResult in
switch loginResult {
case .failed(let error):
print("Facebook登入失敗:(error)")
case .cancelled:
print("Facebook登入已取消。")
case .success(let grantedPermissions, _, _):
if grantedPermissions.contains("email") {
self.fetchFacebookUserProfile()
}
}
}
在上述程式碼中,fetchFacebookUserProfile()是一個自訂的方法,用來取得使用者的Facebook資訊。你可以在這個方法中使用Graph API來取得使用者的姓名、電子郵件等資訊。以下是一個範例:
func fetchFacebookUserProfile() {
if let token = AccessToken.current, !token.isExpired {
let request = GraphRequest(graphPath: "me", parameters: ["fields": "id, name, email"])
request.start { _, result, error in
if let error = error {
print("取得Facebook使用者資訊失敗:(error)")
} else if let userData = result as? [String: Any] {
let name = userData["name"] as? String ?? ""
let email = userData["email"] as? String ?? ""
print("Facebook使用者資訊:姓名 - (name),電子郵件 - (email)")
}
}
}
}
以上程式碼中,當使用者成功登入並且授權了電子郵件權限後,會呼叫fetchFacebookUserProfile()方法來取得使用者的姓名和電子郵件。
請確保在Info.plist檔案中加入以下內容,用於設定Facebook登入所需的URL Scheme:
CFBundleURLTypes
CFBundleURLSchemes
fb{your-app-id}
FacebookAppID
{your-app-id}
FacebookDisplayName
{your-app-name}
在上述程式碼中,將{your-app-id}替換為你在Facebook開發者平台上建立應用程式時獲得的App ID,{your-app-name}替換為你的應用程式名稱。