Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS应用程序的Facebook SSO问题_Iphone_Ios_Facebook - Fatal编程技术网

Iphone iOS应用程序的Facebook SSO问题

Iphone iOS应用程序的Facebook SSO问题,iphone,ios,facebook,Iphone,Ios,Facebook,我正在尝试将Facebook集成到我的应用程序中,我已经实现了SSO功能,但是我遇到了一点障碍,一旦退出应用程序,我就无法恢复用户的会话。我存储令牌和到期日期,如图所示: -(void)fbDidLogin { NSString *tokenString = [[self facebook] accessToken]; NSDate * expirationDate = [[self facebook] expirationDate]; [[NSUserDefaults standardUse

我正在尝试将Facebook集成到我的应用程序中,我已经实现了SSO功能,但是我遇到了一点障碍,一旦退出应用程序,我就无法恢复用户的会话。我存储令牌和到期日期,如图所示:

-(void)fbDidLogin {
NSString *tokenString = [[self facebook] accessToken];
NSDate * expirationDate = [[self facebook] expirationDate];

[[NSUserDefaults standardUserDefaults] setValue: tokenString forKey:@"FacebookToken"];
[[NSUserDefaults standardUserDefaults] setObject: expirationDate forKey:@"FacebookExpirationDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"Login");
}

这是成功登录时调用的委托方法

并复会:

  NSString *tokenString = [[NSUserDefaults standardUserDefaults] stringForKey:@"FacebookToken"];    
NSDate *expDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"FacebookExpirationDate"];
if (tokenString != nil && expDate != nil)
{
    [[facebookFetcher facebook]setAccessToken:tokenString];
    [[facebookFetcher facebook] setExpirationDate:expDate];
}
if ([[facebookFetcher facebook]  isSessionValid])
{
    NSLog(@"YES");
}
else 
{
    NSLog(@"Bummer");
}

我试过用很多方法来解决这个问题,但运气不好。我注意到的一点是,有效期似乎有点奇怪:4001-01-01 00:00:00+0000有什么建议吗?谢谢

您的答案在下面的链接中

使用扩展权限脱机访问时,可以看到日期4001-01-01 00:00:00+0000


我遇到了麻烦,因为我从1970年开始就把日期转换成秒,就像在安卓Facebook SDK上那样。如果从1970年开始使用NSDate的时间间隔将4001-01-01转换为秒,则会得到一个负数-2147483648,因此请注意。

如果是另一个问题的重复,您还应将其标记为重复,以便主持人注意。我对iOS的Facebook API知之甚少,无法判断,但你的回答暗示它是重复的。。。重复的问题是不允许的