2010-12-18 138 views
0

我已经在我的应用程序中实现了Facebook Connect,并且它看起来工作正常。我可以发布状态和一切。但是,当我退出应用程序并再次运行该应用程序时,会话令牌似乎已过期,或者因为我无法再发布。但是,如果我再次使用Facebook进行身份验证,则表明权限已被授予,只有在调用该应用程序的回调时,才可以再次发帖。Facebook连接iOS版自动退出应用程序后退出

我在做什么错了?

回答

2

你应该自己存储你的Facebook对象的accessToken和expireTime。启动后恢复并通过isSessionValid进行验证,否则重新授权用户。您可以使用它们的这些功能:

调用您的fbDidLogin中的存储功能,并在应用程序启动后调用恢复功能。

-(void)restoreFBAccessToken { 
    self.facebook.accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"fb_accessToken"]; 
    self.facebook.expirationDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"fb_expirationDate"]; 
} 
-(void)storeFBAccessToken { 
    [[NSUserDefaults standardUserDefaults] setValue:self.facebook.accessToken forKey:@"fb_accessToken"]; 
    [[NSUserDefaults standardUserDefaults] setValue:self.facebook.expirationDate forKey:@"fb_expirationDate"]; 

    [[NSUserDefaults standardUserDefaults] synchronize]; 
} 
0

我也在我自己的应用程序中使用FB Connect,但以间接方式。我通过名为ShareKit的第三方开源工具包使用它。 http://www.getsharekit.com/

我记得,ShareKit的工作非常好。即使关闭应用程序,它也会记住这些登录信息。

由于ShareKit是开源的,我建议你看看它的代码。它应该有一个答案给你。 :-)

0

您是否确保在应用重新加载后再次启动会话?

+0

我甲肝的Facebook = [[Facebook的页头] initWithAppId:在viewDidLoad中:但它仍然没有工作.. – quantum 2010-12-18 12:22:16

+0

我觉得还有一个[会话开始]。或类似的东西你可能不得不打电话。 – Domness 2010-12-29 12:23:47