2017-06-10 13 views
0

s'il vous plaît aidez-moi avec connexion Facebooklogin facebook avec 3 rapide

J'ai commencé à mettre en pod

pod 'FacebookCore' 
pod 'FacebookLogin' 
pod 'FacebookShare' 
and then run pod install 

après que je l'ai importé ceci dans mon viewController

import UIKit 
import FacebookCore 
import FacebookLogin 

class ViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    let loginButton = LoginButton(readPermissions: [ .publicProfile ]) 
    loginButton.center = view.center 
    view.addSubview(loginButton) 
} 

    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
    } 


} 

J'ai mis à jour info.plist avec les données Facebook

Comment puis-je obtenir les données de profil de base utilisateur une fois que l'utilisateur a autorisé l'application? Que se passe-t-il dans le fichier AppDelegate?

grâce

+1

Voici [un tutoriel qui pourrait vous aider] (http://ashishkakkad.com/2015/05/facebook-login-swift-language-ios/) obtenir ce que vous voulez. –

+0

merci, c'est exactement ce que je voulais –

Répondre

1

Voici le code de

1. ViewController.swift

import UIKit 

import FacebookLogin 
import FBSDKLoginKit 

class ViewController: UIViewController { 

    var dict : [String : AnyObject]! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     //creating button 
     let loginButton = LoginButton(readPermissions: [ .publicProfile ]) 
     loginButton.center = view.center 

     //adding it to view 
     view.addSubview(loginButton) 

     //if the user is already logged in 
     if let accessToken = FBSDKAccessToken.current(){ 
      getFBUserData() 
     } 

    } 

    //when login button clicked 
    @objc func loginButtonClicked() { 
     let loginManager = LoginManager() 
     loginManager.logIn([ .publicProfile ], viewController: self) { loginResult in 
      switch loginResult { 
      case .failed(let error): 
       print(error) 
      case .cancelled: 
       print("User cancelled login.") 
      case .success(let grantedPermissions, let declinedPermissions, let accessToken): 
       self.getFBUserData() 
      } 
     } 
    } 

    //function is fetching the user data 
    func getFBUserData(){ 
     if((FBSDKAccessToken.current()) != nil){ 
      FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, picture.type(large), email"]).start(completionHandler: { (connection, result, error) -> Void in 
       if (error == nil){ 
        self.dict = result as! [String : AnyObject] 
        print(result!) 
        print(self.dict) 
       } 
      }) 
     } 
    } 
} 

2. AppDelegate.swift

import UIKit 
import FBSDKLoginKit 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 

    //added these 3 methods 
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions) 
    } 

    func applicationWillResignActive(_ application: UIApplication) { 
     FBSDKAppEvents.activateApp() 
    } 

    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 
     return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation) 
    } 

    func applicationDidEnterBackground(_ application: UIApplication) { 

    } 

    func applicationWillEnterForeground(_ application: UIApplication) { 

    } 

    func applicationDidBecomeActive(_ application: UIApplication) { 

    } 

    func applicationWillTerminate(_ application: UIApplication) { 

    } 


} 

Source: Facebook Login Swift 3 Tutorial