facebook-ios-sdk注销

问题描述:

我正在构建一个学校的基本应用程序,它使用facebook-ios-sdk从facebook获取一些信息。但是,当我退出应用程序时,它不会让我选择重新登录,即使在facebook的演示中也是如此。我正在检查会话是否仍然有效,并且始终无效。那是另一个问题。这是我的代码。任何帮助表示赞赏。facebook-ios-sdk注销

- (void)viewDidLoad { 
     _facebook = [[Facebook alloc] init]; 

     if ([_facebook isSessionValid] == NO) { 
     //show proper buttons for login 
     loginButton.hidden = NO; 
     logoutButton.hidden = YES; 
     } 

    else { 
    //show proper buttons for logout 
     loginButton.hidden = YES; 
     logoutButton.hidden = NO; 
    } 
    } 

这就是检查我是否登录。然后我显示正确的按钮,但上面的代码总是返回会话无效。下面是我打电话登录或注销的功能:

- (void)login { 
    [_facebook authorize:kAppId permissions:_permissions delegate:self]; 
} 

/** 
* Invalidate the access token and clear the cookie. 
*/ 
- (void)logout { 
    [_facebook logout:self]; 
} 
+0

请整理你的文章,它不是真正可读的这种方式。 – LordT 2010-12-02 17:23:22

Facebook的对象说,没有有效的会话,因为它的accessToken和/或到期日期是零。这可能是因为它不能坚持自己。您可能需要通过处理FBSessionDelegate的fbDidLogin方法中的登录来记录accessToken和expirationDate。

- (void)fbDidLogin { 
    [[NSUserDefaults standardUserDefaults] setValue: _facebook.accessToken forKey: @"access_token"]; 
    [[NSUserDefaults standardUserDefaults] setValue: _facebook.expirationDate forKey: @"expiration_date"]; 
} 

例如,使用NSUserDefaults将这些值保存到设备。然后,每次分配并初始化_facebook对象时,立即将accessToken和expirationDate设置为您存储在NSUserDefaults中的值。

这应该修复facebook对象说isSessionValid = NO总是。至于另一个问题,我有同一个:(