有了新的 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/