Facebook登录状态检查问题

问题描述:

当用户打开Facebook设置视图时,如何识别当前登录状态。如果它被记录,我如何检索用户的更多信息。如生日,年龄,性别等Facebook登录状态检查问题

我写了这段代码,这是行不通的。提前致谢。

- (void)viewDidLoad { 
[super viewDidLoad]; 

if ([FBSDKAccessToken currentAccessToken]) { 

    //Going to another ViewController, which include user's name, 
    //age, photo and so on. 
} else { 
    FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init]; 

    loginButton.center = self.view.center; 
    [self.view addSubview:loginButton]; 
} 


} 
+0

你的条件是错误的。 –

+0

那么如何解决它?提前致谢。 – Nan

+0

其中facebook使用的是sdk版本 –

if ([FBSDKAccessToken currentAccessToken]) { 
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil] 
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
    if (!error) { 
    NSLog(@”fetched user:%@”, result); 
    } 
}]; 
} 

试试这个它的工作。

https://developers.facebook.com/docs/ios/change-log-4.x这里是文档,以获取有关SDK 4.0

信息下面是一些图形API密钥。

"public_profile", 
"email", 
"user_friends" , 
"user_hometown", 
"user_work_history" , 
"user_birthday" , 
"user_education_history 

以下是完整的和完整的代码来获取用户的信息

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
[login 
logInWithReadPermissions: @[@"public_profile", @"user_friends", @"email"] 
fromViewController:self 
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
    if (error) { 
     DLog(@"Process error======%@",error.description); 
     indicators.hidden=YES; 
     [indicators stopAnimating]; 
    } else if (result.isCancelled) { 
     DLog(@"Cancelled"); 
     indicators.hidden=YES; 
     [indicators stopAnimating]; 
    } else { 

     if ([FBSDKAccessToken currentAccessToken]) { 



      [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location ,friends ,hometown , gender ,friendlists"}] 
       startWithCompletionHandler:^(
              FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
        if (!error) 
        { 

         // NSLog(@"fetched user:%@", result); 

         // [self fetchingFacebookFriends]; 

         [defFacebookData setObject:[result objectForKey:@"email"] forKey:@"fbEmail"]; 

         [defFacebookData setObject:[result objectForKey:@"id"] forKey:@"fbID"]; 


         //PASS ID 
         getFbid = [result objectForKey:@"id"]; 
    NSLog(@"getFbid========>%@",getFbid); 

         //PASS FIRST NAME 
         getFbFirstName=[result objectForKey:@"first_name"]; 

    NSLog(@"first======>%@",getFbFirstName); 

         //PASS LAST NAME 
         getFBlastName=[result objectForKey:@"last_name"]; 
    NSLog(@"first======>%@",getFBlastName); 

         //PASS EMAIL 
         getFbemail=[result objectForKey:@"email"]; 
    NSLog(@"first======>%@",getFbemail); 

         //PASS PHONE 
         getfbGender=[result objectForKey:@"gender"]; 
    NSLog(@"first======>%@",getfbGender); 


         [defFacebookData setObject:[result objectForKey:@"name"] forKey:@"fbName"]; 

         // Image 
         FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] 
                initWithGraphPath:[NSString stringWithFormat:@"me/picture?type=large&redirect=false"] 
                parameters:nil 
                HTTPMethod:@"GET"]; 
         [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, 
                  id fbImageResult, 
                  NSError *error) { 

NSString *strURL = [NSString stringWithFormat:@"%@",[[fbImageResult objectForKey:@"data"] objectForKey:@"url"]]; 

    NSLog(@"strURL=====>%@",strURL); 

[defFacebookData setObject:strURL forKey:@"fbImage"]; 

          [defFacebookData synchronize]; 


          NSDictionary *fbdict=[NSDictionary dictionaryWithObjectsAndKeys:getFbid,@"id",getFbFirstName,@"first_name",getFBlastName,@"last_name",getFbemail,@"email",getfbGender,@"gender",strURL,@"fbImage", nil]; 

          NSLog(@"done=========>%@",fbdict); 

    UIStoryboard*storyboard=[AppDelegate storyBoardType]; 

    NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults]; 


    BOOL fblogin =[defaults boolForKey:@"KeyEditProfile"]; 

     if (fblogin) 
      { 

       UIStoryboard*Storyboard=[AppDelegate storyBoardType]; 
       DashboardVC* tabbarController = (DashboardVC*)[Storyboard instantiateViewControllerWithIdentifier:@"DashboardVCId"]; 



       indicators.hidden=YES; 
       [indicators stopAnimating]; 

       [self.navigationController pushViewController:tabbarController animated:YES]; 

     } 

    else 
    { 
    EditFBVC *cpvc=(EditFBVC*)[storyboard instantiateViewControllerWithIdentifier:@"EditFBVCId"]; 
    NSLog(@"get fb id ===%@",getFbid); 


    cpvc.dictFacebookdict =fbdict; 

    cpvc.strFBlogin [email protected]"fbAllDataValue"; 

     indicators.hidden=YES; 
     [indicators stopAnimating]; 

    [self.navigationController pushViewController:cpvc animated:YES]; 

    } 
         }]; 
        } 
        else{ 

         DLog(@"error is %@", error.description); 
        } 
       }]; 
     } 
    } 
}];