How to check if user is logged in with FBSDKLoginK

2019-07-08 19:55发布

问题:

When I run the app in viewDidLoad I need to check if user was logged in before or not.

if FBSDKAccessToken.currentAccessToken() != nil {
    print("1")
    presentViewController(controller, animated: true, completion: nil)
} else {
    print("2")
    let button = FBSDKLoginButton()
    button.delegate = self
    button.readPermissions = ["public_profile", "user_friends"]
    view.addSubview(button)
}

It always prints "2". Why?

回答1:

Below two methods must be implemented in AppDelegate:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}