Facebook SDK iOS登录

Facebook SDK iOS登录

问题描述:

使用Facebook SDK for iOS,如何确定用户是否已登录,以便应用程序无需通过登录过程?Facebook SDK iOS登录

当前在登录过程中,我将访问令牌和过期日期保存为用户默认值,然后在我的应用程序运行时开始初始化Facebook对象时再读取它们。

但是如果用户背景的应用程序,进入Safari,更改为不同的Facebook帐户或标志,然后回到我自己的应用程序会发生什么。 Facebook应用不应该返回已存储的会话无效吗?我如何解释这一点?目前,我的facebook对象认为会话是有效的,但不幸的是,当我尝试发布某些内容时,我在适当的Facebook页面上看不到任何内容。

我在这里错过了什么吗?谢谢你的帮助!

+0

可以'[Facebook的isSessionValid]'帮助吗? – 2011-03-29 21:59:14

您正在做正确的事情保存和恢复facebook访问令牌&到期日期。如果您使用过期的令牌调用它,任何需要有效令牌的FB API都将失败,并显示错误。从FB本地处理错误和注销,然后要求用户再次登录。

关于Facebook在iPhone上的登录(SDK v3.0 +),它将系统级登录1st,Facebook本机iOS应用程序2nd和移动Safari Facebook登录排名第三。但是,如果用户使用移动Safari浏览器登录到您的应用程序,将应用程序背景化,使用移动Safari浏览器登录到其他Facebook帐户,然后返回到您的应用程序,则应用程序中的访问令牌和会话才会有效,直到您从iOS注销应用程序。通常,您注销使用此行:

[FBSession.activeSession closeAndClearTokenInformation]; 

登录由这条线的一些变化开始:

[FBSession openActiveSessionWithReadPermissions: 

如果您正在使用Facebook的iOS版SDK 3.2+,您可以拨打以下看如果已验证的Facebook会话打开:

[[FBSession activeSession] isOpen] 

此外,您不必在本地保存访问令牌或到期日期。你可以用这些调用访问它们:

[FBSession activeSession].accessTokenData.accessToken 
[FBSession activeSession].accessTokenData.expirationDate 

下面是一些相关的Facebook的iOS文档的链接:

Facebook Login - iOS SDK