Woo! Hooy!
We have just recieved your project brief and our expert will contact you shortly.
Send Again
Close
Hello guys, this post is about Facebook Login in Swift 3.
123 pod 'FacebookCore'pod 'FacebookLogin'pod 'FBSDKLoginKit'
1 pod install
Inside Appdelegate.swift
12 import FacebookLoginimport FBSDKLoginKit
1234567891011121314151617181920212223 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {let value:Bool = FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)return value}func applicationWillResignActive(_ application: UIApplication) {FBSDKAppEvents.activateApp()}func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {let valueFacebook: Bool = FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)return valueFacebook}@available(iOS 9.0, *)func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {let valueFacebook: Bool = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: "UIApplicationOpenURLOptionsKey", annotation: nil)return valueFacebook}
Inside ViewController in which you are going to create Facebook button to login
1 import FBSDKLoginKit
Create IBAction method on Facebook UIButton and write below code inside that method
1234567891011121314 @IBAction func facebookBtnAction(_ sender: Any) {let loginView : FBSDKLoginManager = FBSDKLoginManager()loginView.loginBehavior = FBSDKLoginBehavior.webloginView.logIn(withReadPermissions:["public_profile","user_friends","email"], from: self) {loginResult,error inif(error != nil){print("error")}else{self.loginManagerDidComplete()}}}
Now write code for loginManagerDidComplete() method
1234567891011121314151617181920212223242526 func loginManagerDidComplete() {if((FBSDKAccessToken.current()) != nil){FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).start(completionHandler: { (connection, result, error) -> Void inif (error == nil){let dict = result as! [String : AnyObject]// print(dict)var dict2 = [String : Any]()let sessionId = sharedPrefrence.object(forKey:"wk_token");dict2["wk_token"] = sessionId;dict2["firstname"] = dict["first_name"]dict2["lastname"] = dict["last_name"]dict2["email"] = dict["email"]dict2["personId"] = dict["id"]print("Facebook Details: ", dict2)// Now you can call api by passing this dictionaryself.SocialLoginAPICall(dict: dict2)}})}}
Important step (don’t forget):
1234567891011121314151617181920212223242526272829 <!--Facebook Begin--><key>CFBundleURLTypes</key><array><dict><key>CFBundleURLSchemes</key><array><string>fb123</string></array></dict></array><key>FacebookAppID</key><string>123</string><key>FacebookDisplayName</key><string>SocialLogin</string><key>LSApplicationQueriesSchemes</key><array><string>fbapi</string><string>fb-messenger-share-api</string><string>fbauth2</string><string>fbshareextension</string></array><!--Facebook End-->
refer image to avoid any error
Be the first to comment.