在IOS上检查Facebook Connect会话 [英] Check Facebook Connect Session on IOS
问题描述
使用新的Facebook库,FBSession对象消失了。
如何检查用户在他的设备上是否有一个有效的会话,当他启动应用程序时没有提示safari或uiwebview?
With the new Facebook library, FBSession object is disappeared. How can i check if user has a valid session on his device immediately when he start the app without prompt to safari or uiwebview ?
[facebook isSessionValid]方法适用于acccessToken,但accessToken在应用程序从safari(或inline uiwebview)返回时设置。
The [facebook isSessionValid] method works on acccessToken but accessToken is set when app come back from safari (or inline uiwebview).
是否可以使用Cookie检查会话?
Is it possibleto check session using cookies ?
推荐答案
成功登录后,您要保存访问令牌和到期日期,如下所示:
After a successful login, you want to save the access token and expiration date, like this:
[[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"AccessToken"];
[[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"ExpirationDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
然后,当您加载应用程序时,您想要检查是否有一个保存的令牌, :
Then, when you load the app, you want to check if there is a saved token, like this:
_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];
}
希望这有助!
这篇关于在IOS上检查Facebook Connect会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!