Iphone facebook ios sdk注销

Iphone facebook ios sdk注销,iphone,facebook,ios,Iphone,Facebook,Ios,我正在为学校构建一个基本应用程序,使用facebook ios sdk从facebook获取一些信息。然而,当我退出应用程序时,它不会给我重新登录的选项,即使在facebook的演示中也是如此。我正在检查会话是否仍然有效,结果总是无效。这是另一个问题。这是我的密码。感谢您的帮助 - (void)viewDidLoad { _facebook = [[Facebook alloc] init]; if ([_facebook isSessionValid] == NO)

我正在为学校构建一个基本应用程序,使用facebook ios sdk从facebook获取一些信息。然而,当我退出应用程序时,它不会给我重新登录的选项,即使在facebook的演示中也是如此。我正在检查会话是否仍然有效,结果总是无效。这是另一个问题。这是我的密码。感谢您的帮助

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

facebook对象表示它没有有效会话,因为它的accessToken和/或expirationDate为零。这可能是因为它本身并没有持续下去。您可能需要通过在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 always。至于另一个问题,我也有同样的问题:(

请整理一下你的帖子,这样读起来不太容易。对不起,我没意识到这么糟糕。