cocoa-touch - 在 IOS 上检查 Facebook 连接 session

标签 cocoa-touch ios facebook

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

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

是否可以使用 cookie 检查 session ?

最佳答案

登录成功后,你想保存access token和过期时间,像这样:

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

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

_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];
}

希望这对您有所帮助!

关于cocoa-touch - 在 IOS 上检查 Facebook 连接 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4596487/

相关文章:

c# - Facebook 分享按钮的不同 URL

ios - 在 viewDidAppear 之前以编程方式定位 UIView

ios - 使用 CameraUI 拍摄照片和视频 : MediaPromise. 文件在 iOS 上为空

ios - FBLoginView 委托(delegate)方法不再被调用

ios - 即使应用程序未在后台运行,如何使 iOS 应用程序执行一些代码?

ios - 如何强制 iOS 相机使用 AVFoundation 以编程方式拍照?

facebook - 使用图形 API 获取 Facebook 好友帖子

ios - 发现 UIActivityViewController 支持的所有端点,如微信、KaKao、Line 等?

ios - 检查 UIView 当前是否正在动画

iphone - 让 iPhone 应用程序与 OSX 应用程序通信