我实现了一个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上的“主页”按钮并返回到应用程序后,它变为"is"。

如何立即更新,以便可以向用户显示另一个 View Controller ?

更新:
回到应用程序后,我找到了执行正确代码的方法。关键是使用FBSDKAccessTokenDidChangeNotification是Notification Center。所以最终结果将是这样的:
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn) name: FBSDKAccessTokenDidChangeNotification object:nil];

这样, token 将被更新,并且将起作用。

最佳答案

请检查您的appDelegate类并实现FB SDK的所有必需方法。我要附上相同的屏幕截图。

10-06 05:36