// // SPLoginManager+Facebook.swift // MoviaBox // // Created by 佳尔 on 2025/4/25. // import UIKit import FacebookLogin //https://developers.facebook.com/docs/facebook-login/ios?checkpoint_src=any extension SPLoginManager { ///facebook登录 func facebookSignLogin(presentingViewController: UIViewController, completer: ((_ model: SPThirdSignModel?) -> Void)?) { let loginManager = LoginManager() loginManager.logOut() loginManager.defaultAudience = .everyone loginManager.logIn(permissions: ["public_profile", "email"], from: presentingViewController) { result, error in guard error == nil, let result = result else { completer?(nil) return } if result.isCancelled { completer?(nil) return } let request = GraphRequest(graphPath: "me", parameters: ["fields" : "id,name,email,picture"], httpMethod: .get) request.start { connection, result, error in guard let result = result as? [String : Any] else { completer?(nil) return } let model = SPThirdSignModel() model.platform = .faceBook model.third_id = result["id"] as? String model.email = result["email"] as? String if let picture = result["picture"] as? [String : Any], let data = picture["data"] as? [String : Any], let url = data["url"] as? String { model.avator = url } if let name = result["name"] as? String { model.family_name = name } else { model.family_name = result["first_name"] as? String model.giving_name = result["last_name"] as? String } completer?(model) } } } }