在IOS上检查Facebook连接会话

有了新的Facebook库,FBSession对象就消失了。 我如何检查用户是否在他的设备上有一个有效的会话时立即启动应用程序没有提示Safari或uiwebview?

[facebook isSessionValid]方法适用于acccessToken,但应用程序从Safari(或内联uiwebview)返回时设置accessToken。

是否可以使用cookie检查会话?

成功login后,您需要保存访问令牌和到期date,如下所示:

[[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"AccessToken"]; [[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"ExpirationDate"]; [[NSUserDefaults standardUserDefaults] synchronize]; 

然后,当你加载应用程序,你想检查是否有一个保存的令牌,如下所示:

 _facebook = [[Facebook alloc] initWithAppId:@"[app_id]"]; _facebook.accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"AccessToken"]; _facebook.expirationDate = (NSDate *) [[NSUserDefaults standardUserDefaults] objectForKey:@"ExpirationDate"]; if (![_facebook isSessionValid]) { [_facebook authorize:_permissions delegate:self]; } else { [_facebook requestWithGraphPath:@"me" andDelegate:self]; } 

希望这可以帮助!

我很确定它应该自动检查用户是否login,通过safari或Facebook iPhone应用程序。 如果用户没有login,那么它会提示使用上面的应用程序(如果没有安装FB应用程序,默认是safari,这就是为什么模拟器在safari中打开FB)。