gpt4 book ai didi

iphone - facebook-ios-sdk注销

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:21:10 24 4
gpt4 key购买 nike

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

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

就是检查我是否登录了。然后我显示了正确的按钮,但上面的代码总是返回 session 无效。以下是我调用的用于登录或注销的函数:

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

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

最佳答案

facebook 对象说它没有有效的 session ,因为它的 accessToken 和/或 expirationDate 是 nil。那可能是因为它本身不会持久化它们。您可能需要通过在 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 的问题。至于另一个问题,我也有同样的问题:(

关于iphone - facebook-ios-sdk注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4337653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com