我遇到了facebook登录问题。我安装了FB SDK 3.0,示例项目似乎运行良好 - 但不太确定。当我在自己的项目中创建一个按钮并尝试登录Facebook时,我总是从sessionStateChanged方法获得FBSessionStateClosedLoginFailed,虽然我显然得到了“你已经授权这个应用程序的页面。按Okay继续”。我也尝试通过模拟器Safari Facebook页面注销,重新启动我的项目,我得到了新的用户名/密码页面,然后我登录,但我仍然得到FBSessionStateClosedLoginFailed!
还有一些观察结果。 1,我通过NSLog获得了FBSessionStateClosedLoginFailed,在我点击Facebook页面上的“Okay”按钮后,日志就出现了“你已经授权了这个应用程序。 2,我试过干净的xcode项目缓存,但没有帮助。
有点沮丧。我想知道你们中是否有人可以帮助解决这个问题。不胜感激! -Tony增加: 我做了一些研究,我发现我所拥有的可能是一个典型的问题,正如Facebook在这里强调的那样(“专业技巧3:完成所有iOS应用程序设置”页面http://developers.facebook.com/docs/howtos/login-with-facebook-using-ios-sdk/)。在iPhone上有一个大红十字的图像正是我所拥有的。从xcode项目,我点击我的登录按钮,我被引导到这个页面,每次我必须点击这个页面上的“Okay”(让我称之为Okay_page)回到我在模拟器中的应用程序,但是登录状态为FBSessionStateClosedLoginFailed。我检查了捆绑ID,我说得对。我还没有'YOUR_IPHONE_APP_STORE_ID',我相信我需要向Apple支付费用,以后我会这样做,但不是在我还在努力的时候。
现在得到几个问题: 1,我是否必须有YOUR_IPHONE_APP_STORE_ID才能跳过此Okay_page? 2,这个(不是从这个Okay_page自动重定向回我的应用程序)与我有关的事情当我在这个Okay_page中手动点击Okay并在模拟器中返回我的应用程序时,我总是获得FBSessionStateClosedLoginFailed的登录状态吗?换句话说,是(我必须手动点击Okay才能回到我在Simulator中的应用程序)(我得到FBSessionStateClosedLoginFailed状态的原因)?
答案 0 :(得分:27)
您是否在AppDelegate中设置了此功能?
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [FBSession.activeSession handleOpenURL:url];
}
答案 1 :(得分:8)
我遇到了同样的问题:
显然他开始得到FBSessionStateClosedLoginFailed错误!
因此,您的iOS项目和Facebook应用程序之间可能有不同的软件包ID。
答案 2 :(得分:7)
我遇到了这个错误,很长一段时间都无法解决。事实证明,如果您在设置中使用原生iOS Facebook帐户并选择“否”以允许此应用程序的Facebook,该应用程序将被操作系统阻止。您将始终获得FBSessionStateClosedLoginFailed错误,并且您无法在代码中执行任何操作来解决此问题(99%肯定)。您可以做的最好的事情是提醒用户检查设置。
答案 3 :(得分:4)
我在下面给出的方法中键入了错误的行。 self.session是零
return [self.session handleOpenURL:url];
应该是
return [[FBSession activeSession] handleOpenURL:url];
使用以下方法。
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [[FBSession activeSession] handleOpenURL:url];
// return [self.session handleOpenURL:url];
}
答案 4 :(得分:2)
我在重置模拟器后解决了这个问题。 iOS Simulator - Reset Content and Settings...
,希望能提供帮助。
答案 5 :(得分:1)
我遇到了这个问题,因为我在[FBSession.activeSession close]
app委托回调中调用了applicationDidEnterBackground:
。这会关闭会话,以便当重定向将应用程序重新启动以打开会话时,它会因为已进入关闭状态而失败。
确保在进入Okay页面之前没有关闭会话。
答案 6 :(得分:1)
转到Facebook.com。在左侧面板上打开您的应用程序 - >现状&评论 - >有一个文本切换“你想让这个应用程序及其所有实时功能可供公众使用吗?”。打开它
答案 7 :(得分:0)
好。我在FBLoginCustomUISample
的某个地方跟着github.com
,这是facebook
本身facebook
登录实施的一个有效例子。您还可以在iOS应用中创建facebook
登录功能时阅读我的解决方法。这是我的链接: