我实现了一个完美的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所需的所有方法.我附加的屏幕截图相同.