我'm doing login via facebook in one of my app. For that I'使用 FBSessionLoginBehaviorWithFallbackToWebView 作为 FBSession 行为按照层次结构在FB安装的应用程序,Safari正常工作,但问题是登录Facebook系统应用程序 .

My code is as per below.

FBSession *session = [[FBSession alloc] initWithPermissions:@[@"public_profile",@"user_friends"]];
    [FBSession setActiveSession:session];

[session openWithBehavior:FBSessionLoginBehaviorWithFallbackToWebView
            completionHandler:^(FBSession *session,
                                FBSessionState status,
                                NSError *error) {

                FBRequest *request = [FBRequest requestWithGraphPath:@"me/friends"
                                                          parameters:@{}
                                                          HTTPMethod:@"GET"];

                [request startWithCompletionHandler:^(FBRequestConnection *connection,
                                                  id result,
                                                  NSError *error){
                FBUserDetail=(NSArray*)result;
                NSLog(@"FBUSERDETAIL:%@",FBUserDetail);

                cricoFrndArray=[FBUserDetail valueForKey:@"data"];
                FBUserDetail=[FBUserDetail valueForKey:@"data"];

            }];
}];

根据这个我能够通过Facebook安装的应用程序登录运行良好,即使用户没有安装Facebook应用程序,它将去facebook系统帐户,我收到错误,如果没有找到facebook系统帐户,那么它将去通过safari登录,运行良好 .

Error is as follow.

Error Domain = com.facebook.sdk Code = 2“无法完成操作 . (com.facebook.sdk error 2.)”UserInfo = 0x14da88c0 {com.facebook.sdk:ErrorLoginFailedReason = com.facebook.sdk: SystemLoginCancelled,com.facebook.sdk:ErrorInnerErrorKey = Error Domain = com.apple.accounts Code = 7“Facebook服务器无法满足此访问请求:代理的应用程序无法在未先安装的情况下请求发布权限 . ” UserInfo = 0x14dacf40 {NSLocalizedDescription = Facebook服务器无法满足此访问请求:代理的应用程序无法在未安装之前请求发布权限 . },com.facebook.sdk:ErrorSessionKey =,expirationDate:(null),refreshDate:(null ),attemptsRefreshDate:0000-12-30 00:00:00 0000,权限:(null)>}