在IOS上查看Facebook Connect Session

Mat*_*oal 5 cocoa-touch facebook ios

随着新的Facebook库,FBSession对象消失了.如何在没有提示进行safari或uiwebview的情况下启动应用程序时,如何检查用户是否在他的设备上有有效的会话?

[facebook isSessionValid]方法适用于acccessToken,但当app从safari(或内联uiwebview)返回时设置了accessToken.

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

don*_*kim 12

成功登录后,您希望保存访问令牌和到期日期,如下所示:

[[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"AccessToken"];
[[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"ExpirationDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)

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

_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];
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!