Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Facebook sdk 3.5错误“com.Facebook.sdk:ErrorLoginFailedReason”_Objective C_Facebook_Ios6 - Fatal编程技术网

Objective c Facebook sdk 3.5错误“com.Facebook.sdk:ErrorLoginFailedReason”

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

我正在使用Facebook SDK 3.5,登录时出现以下错误:

这是我登录facebook时使用的代码

- (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,非常感谢。这也解决了我的问题。但为什么会这样呢?另一种方法工作了几天,然后停止了工作。这两种方法看起来完全一样……更糟糕的是,在这之后,我又改回了旧方法,现在它又起作用了。看起来很随意。。。