在 iOS 6 上 Facebook 登录失败
Posted
技术标签:
【中文标题】在 iOS 6 上 Facebook 登录失败【英文标题】:Facebook login failing on iOS 6 【发布时间】:2013-08-03 21:49:43 【问题描述】:当我尝试使用 Facebook ios SDK 登录时,我收到错误操作无法完成(com.facebook.sdk 错误 2)。
会话的状态是:FBSessionStateClosedLoginFailed。
这是我现在的代码:
-(void) callFBService
NSArray *permissions = [[NSArray alloc] initWithObjects:@"email, publish_stream, user_likes, friends_likes", nil];
[FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES
completionHandler:^(FBSession *fbsession,
FBSessionState status,
NSError *error)
if(error)
NSLog(@"Session error");
[self fbResync];
[NSThread sleepForTimeInterval:0.5]; //half a second
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:^(FBSession *fbsession, FBSessionState status, NSError *error)
[self sessionStateChanged:fbsession state:status error:error];
];
else
[self sessionStateChanged:fbsession state:status error:error];
];
我已经尝试了以下帖子中的所有内容:
The operation couldn’t be completed. (com.facebook.sdk error 2.) ios6 Facebook Registration : The operation couldn't be completed (com.facebook.sdk error 2) Facebook SDK 3.1 iOS: Handle login if user remove app from Facebook Settings
有什么想法吗???请!
【问题讨论】:
我使用的是最新版本的 SDK。 另外,该应用程序是允许的(在设置/Facebook上) 【参考方案1】:您传递的 publish_stream
具有读取权限,但 publish_stream
是写入权限。它也已被弃用(改用publish_actions
)。尝试删除该权限。在您让用户以读取权限登录后,您需要单独请求该权限。请参阅 SDK 文档:https://developers.facebook.com/docs/technical-guides/iossdk/login/#read
此外,还有几件事需要检查:确保您在 Facebook.com 上的应用配置正确,包括捆绑 ID。确保您尝试登录的用户拥有该应用的权限(如果该应用处于沙盒模式,请确保该用户已添加为测试人员并已批准此操作)。
【讨论】:
我将其更改为 publish_action。不过我没有运气。还有其他想法吗?捆绑包 ID 是正确的。我在沙盒和实时应用中都试过了。 您不能在该请求中使用publish_action
—publish_action
是一个 WRITE 权限,而您在那里使用的是 READ 权限。您需要完全删除该权限,并稍后在每个 SDK 的单独请求中执行此操作。
你是对的。我删除并且它起作用了(两天后尝试了一切)。所以谢谢。现在我有一个新问题。我曾经获得一个令牌,允许我从后端服务器写入时间线。我现在该怎么办????
我曾经在登录后将令牌发送到服务器。我想我现在做不到。
您仍然可以这样做,但首先您需要在您的应用程序中执行第二个身份验证请求。您需要先从 Facebook SDK 执行 requestNewPublishPermissions 位,然后您将拥有一个完全有用的令牌。以上是关于在 iOS 6 上 Facebook 登录失败的主要内容,如果未能解决你的问题,请参考以下文章
iOS 原生 Facebook 登录在 Mobile Safari 身份验证中失败
Facebook iOS SDK:使用 Facebook 登录失败