登录后FBSDKAccessToken currentAccessToken未更新

时间:2015-05-13 03:56:15

标签: ios objective-c facebook

我实施了一个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是通知中心。所以最终结果将是这样的:

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn) name: FBSDKAccessTokenDidChangeNotification object:nil];

这样,令牌将被更新,它将起作用。

2 个答案:

答案 0 :(得分:17)

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

enter image description here

答案 1 :(得分:0)

您应该使用以下代码来侦听FB访问令牌更改,而不是侦听委托方法:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didUpdateFacebookAccessToken) name: FBSDKAccessTokenDidChangeNotification object:nil];