我在后端使用 Facebook SDK for iOS 和 parse.com SDK(但这对我的问题并不重要)。
两个 SDK 都正常工作。
当用户第一次打开我的应用程序时(只要他没有登录),会出现一个模态视图 Controller ,上面写着“你还没有登录等等”和 Facebook 登录按钮开发工具包。
当用户点击登录按钮时,Facebook 应用程序(或 Safari)打开,您可以使用 Facebook 登录,然后您返回我的应用程序并登录。这也可以正常工作。
那么,当用户现在登录或者他在第二天打开应用程序时,我如何检查他是否登录?我想获取要显示的已登录用户的整个新闻提要。
如果我正在使用
FBSession.activeSession().isOpen
它总是错误的,因为当时我想知道, session 不活跃。是否有任何通知或事件处理程序能够知道 session 何时激活?
这就是我想要的:
- 当用户打开应用程序(他已登录)时, View Controller 应该说“正在登录 facebook 并加载您的新闻提要..”
- 成功登录后, View 应显示最新的,例如来自用户动态消息的 20 篇帖子
- 当用户未登录时,我想显示带有 Facebook 登录按钮的模态视图 Controller
我阅读了 Facebook SDK 的文档并在 Google 上进行了大量搜索,但没有任何内容可以回答我的问题。我只想知道如何处理该死的 Facebook 登录。
请帮帮我!
最佳答案
应用加载时,FB SDK 不会自行加载任何内容。您可以提示它检查用户是否仍然连接到您的应用程序,而无需弹出登录对话框。
对于 FB SDK v3.x:
if (!FBSession.activeSession.isOpen) {
BOOL isLoggedIn = [FBSession openActiveSessionWithAllowLoginUI:NO];
}
FB SDK 4.x 现在只要您添加 appropriate lines to your app delegate from their documentation. 就会自行检查
BOOL isLoggedIn = NO;
if ([FBSDKAccessToken currentAccessToken]) {
isLoggedIn = YES;
NSLog(@"facebook already connected");
}
在我看来,理想情况下,您应该通过将一些信息(例如他们的 FB id)保存到 NSUserDefaults
来跟踪用户之前是否登录,而不是依赖 Facebook 的 SDK,但这应该有效。
关于ios - 适用于 iOS 的 Facebook SDK 处理登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28573687/