我实现了一个完美的Facebook登录按钮.但是,用户成功登录到Facebook并返回应用后,[FBSDKAccessToken currentAccessToken]返回NO.我添加了一个观察者,看看我想要的代码是否在返回到应用程序后运行:
-(void)viewDidLoad { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn)name :UIApplicationWillEnterForegroundNotification object:nil]; } -(void)checkLogIn { NSLog(@"IN CHECK LOG IN"); if ([FBSDKAccessToken currentAccessToken]) { NSLog(@"Access Token Activated"); } }
并且登录后,当我返回到应用程序checkLogIn方法被调用,但是[FBSDKAccessToken currentAccessToken]仍然返回NO.
但是,当我按下iPhone上的主页按钮后,它会变为YES,然后返回到应用程序.
更新:
我找到了在回到应用程序后执行正确代码的方法.关键是使用FBSDKAccessTokenDidChangeNotification是Notification Center.所以最终的结果将是这样的:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn) name: FBSDKAccessTokenDidChangeNotification object:nil];
这样,令牌将被更新,它将工作.
解决方法
请检查您的appDelegate类并实现FB SDK所需的所有方法.我附加的屏幕截图相同.