Facebook iOS 3.1 SDK: can login with Safari but not natively

主宰稳场 提交于 2019-12-30 20:32:44

问题


I'm integrating the iOS 3.1 Facebook SDK. When implementing a login with Facebook feature, I call FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:. When called on the simulator (where I don't have a FB account set up natively) I can successfully login.

However, from a device with a native Facebook account setup, when calling openActiveSessionWithReadPermissions... the session type returned in the completion handler is always sessionStateClosedLoginFailed, regardless of whether I allow or disallow my app to use Facebook in the alert dialog. The session state before calling the method is sessionStateCreated.

This is the NSError from the completion handler: Error Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed. (com.facebook.sdk error 2.)" UserInfo=0x20a80820 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:ErrorLoginFailedReason, com.facebook.sdk:ErrorInnerErrorKey=Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (No value.) UserInfo=0x208ed930 {NSDebugDescription=No value.}}

What am I doing wrong that would cause this problem?

Update: I just noticed that my app is not appearing in the Settings > Facebook > "Allow these apps to use your account' section. (It was definitely there earlier today).

Update2: If I delete my account from the iOS Settings app, and then log my test user into the Facebook iPhone app, I am able to login with fast app switching. So it appears to only be a problem with the native account.

Update3: I ran the sample Facebook app Scrumptious I have the same problem. Upon clicking 'Login', which calls the openActiveSessionWithRead... I get the same error.

Update4: Possibly related to this bug? http://developers.facebook.com/bugs/450137751688028?browse=search_50a43a39b37ae4868318658

Update5: I should have mentioned this earlier, but it was a Facebook test user account that had this problem.


回答1:


I switched from using a Facebook test user account to a regular account and this solved the problem on both the Scrumptious app and my app.




回答2:


Have you set the FacebookAppID in your plist? See "Adding your Facebook App ID" in section 5 of the Getting Started with the Facebook SDK. Also, check the "Facebook" section of your device's settings to make sure your app hasn't been unauthorized (in which case it won't be authorized unless you manually do so).



来源:https://stackoverflow.com/questions/13387798/facebook-ios-3-1-sdk-can-login-with-safari-but-not-natively

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!