在IOS上检查Facebook Connect会话 [英] Check Facebook Connect Session on IOS

查看:104
本文介绍了在IOS上检查Facebook Connect会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用新的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆