Objective c Facebook sdk 3.5错误“com.Facebook.sdk:ErrorLoginFailedReason”
我正在使用Facebook SDK 3.5,登录时出现以下错误: 这是我登录facebook时使用的代码Objective c Facebook sdk 3.5错误“com.Facebook.sdk:ErrorLoginFailedReason”,objective-c,facebook,ios6,Objective C,Facebook,Ios6,我正在使用Facebook SDK 3.5,登录时出现以下错误: 这是我登录facebook时使用的代码 - (BOOL)openSession:(BOOL)allowLogin { NSArray *permissions = [NSArray arrayWithObjects:@"user_photos",@"email",@"user_location",@"offline_access", nil]; return [FBSession openActiveSes
- (BOOL)openSession:(BOOL)allowLogin
{
NSArray *permissions = [NSArray arrayWithObjects:@"user_photos",@"email",@"user_location",@"offline_access", nil];
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLogin
completionHandler:^(FBSession *session1,
FBSessionState state,
NSError *error) {[
self sessionStateChanged:session1 state:state error:error];
}];
}
- (void)sessionStateChanged:(FBSession *)session state:(FBSessionState)state error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
{
}
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
{
[[FBSession activeSession] closeAndClearTokenInformation];
}
break;
default:
break;
}
if (error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
}
}
错误
任何帮助都将不胜感激。您尝试登录的用户是否已注册为Facebook开发者?如果您的应用程序处于沙箱模式,则只有开发人员可以登录
还要确保您在plist中提供了您的FB应用程序信息。您尝试登录的用户是否已注册为Facebook开发者?如果您的应用程序处于沙箱模式,则只有开发人员可以登录 还要确保您在plist中提供了您的FB应用程序信息。检查: 1.您是否拥有创建的FB应用程序的开发者权限。也就是说,如果其他人在他们的FB帐户中创建了应用程序,并向您提供了密钥,则您无法登录。 2.如果其处于分发模式,请检查FB应用程序是否已从沙箱移出到生产环境。检查: 1.您是否拥有创建的FB应用程序的开发者权限。也就是说,如果其他人在他们的FB帐户中创建了应用程序,并向您提供了密钥,则您无法登录。 2.如果其处于分发模式,请检查FB应用程序是否已从沙箱移出到生产环境。得到答案 这就造成了问题
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLogin
completionHandler:^(FBSession *session1,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session1 state:state error:error];
}];
当我用这个替换上面的代码时
[FBSession openActiveSessionWithPermissions:permissions allowLoginUI:allowLogin completionHandler:^(FBSession *session1, FBSessionState state, NSError *error){
[self sessionStateChanged:session1 state:state error:error];
}];
return YES;
一切开始都很顺利。得到了答案
这就造成了问题
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLogin
completionHandler:^(FBSession *session1,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session1 state:state error:error];
}];
当我用这个替换上面的代码时
[FBSession openActiveSessionWithPermissions:permissions allowLoginUI:allowLogin completionHandler:^(FBSession *session1, FBSessionState state, NSError *error){
[self sessionStateChanged:session1 state:state error:error];
}];
return YES;
一切都很顺利。另一个解决方案是进入设备上的“设置”>“Facebook”,确保允许应用程序访问Facebook帐户。否则您将得到此错误。我对此困惑了一个小时,直到我发现我的应用程序不允许访问我的Facebook帐户…另一个解决方案是进入设备上的“设置”>“Facebook”,并确保允许你的应用程序访问你的Facebook帐户。否则您将得到此错误。我对此困惑了一个小时,直到我发现我的应用程序不允许访问我的Facebook帐户…你使用的是不推荐的方法,这并不理想。根据facebook@offline\u的说法,access已被弃用,并因登录失败而闻名。从您的权限数组中删除@offline\u访问权限,然后openActiveSessionWithReadPermissions将适用于您:您使用的是不推荐使用的方法,这并不理想。根据facebook@offline\u的说法,access已被弃用,并因登录失败而闻名。从您的权限数组中删除@offline\u访问权限,然后openActiveSessionWithReadPermissions将为您工作:是的,我已在info.plist中提供了AppId,并且该用户还注册为Facebook开发者。是的,我在info.plist中提供了AppId,用户也注册为Facebook开发者。我发现,当用户在设备设置中登录Facebook时,会出现此错误,否则可以正常工作。此错误背后的原因可能是什么?@Neha,您是否尝试在FB应用中将沙盒模式更改为生产模式?我无法在facebook上访问该应用程序,因为appId是由其他人创建的。@Neha,没错,您现在说到了正确的点。您没有开发人员许可。只有创建Facebook应用程序的人才能测试Facebook登录。您的FB ID必须由其他人添加为开发者。或者要求其他人将FB应用程序的状态从独立更改为生产。请看我答案中的第一点。facebook appid在其他应用程序中运行良好。这意味着它与facebook设置无关。我发现,当用户在设备的设置中登录facebook时,会出现此错误,否则可以正常工作。此错误背后的原因可能是什么?@Neha,您是否尝试在FB应用中将沙盒模式更改为生产模式?我无法在facebook上访问该应用程序,因为appId是由其他人创建的。@Neha,没错,您现在说到了正确的点。您没有开发人员许可。只有创建Facebook应用程序的人才能测试Facebook登录。您的FB ID必须由其他人添加为开发者。或者要求其他人将FB应用程序的状态从独立更改为生产。请看我答案中的第一点。facebook appid在其他应用程序中运行良好。这意味着它与facebook设置无关。这也解决了我的问题。不过,如果能找到一个不包含不推荐的API的解决方案就好了。它在iOS 6.0中被贬低了。我不太清楚为什么openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:API总是给我FBSessionStateClosedLoginFailed错误。但是当我使用openActiveSessionWithPermissions:allowLoginUI:completionHandler:API时,我能够登录到Facebook。你节省了我的时间@Neha,非常感谢。这也解决了我的问题。但为什么会这样呢?另一种方法工作了几天,然后停止了工作。而且这两种方法似乎做得完全一样…更糟糕的是,在
这是我改回原来的方法,现在它再次工作。看起来很随意…这也解决了我的问题。不过,如果能找到一个不包含不推荐的API的解决方案就好了。它在iOS 6.0中被贬低了。我不太清楚为什么openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:API总是给我FBSessionStateClosedLoginFailed错误。但是当我使用openActiveSessionWithPermissions:allowLoginUI:completionHandler:API时,我能够登录到Facebook。你节省了我的时间@Neha,非常感谢。这也解决了我的问题。但为什么会这样呢?另一种方法工作了几天,然后停止了工作。这两种方法看起来完全一样……更糟糕的是,在这之后,我又改回了旧方法,现在它又起作用了。看起来很随意。。。