Ios Facebook登录状态检查问题

Ios Facebook登录状态检查问题,ios,objective-c,facebook,Ios,Objective C,Facebook,当用户打开Facebook设置视图时,如何识别当前登录状态。如果它已被记录,我如何检索用户的进一步信息。例如生日、年龄、性别等 我写了这段代码,但它不起作用。提前谢谢 - (void)viewDidLoad { [super viewDidLoad]; if ([FBSDKAccessToken currentAccessToken]) { //Going to another ViewController, which include user's name, //age,

当用户打开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];
}


}
试试这个,它能用

以下是获取SDK 4.0信息的文档

以下是一些图形api键。

"public_profile", 
"email", 
"user_friends" , 
"user_hometown", 
"user_work_history" ,
"user_birthday" ,
"user_education_history
试试这个,它能用

以下是获取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 =@"fbAllDataValue";

        indicators.hidden=YES;
        [indicators stopAnimating];

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

    }
                      }];
                  }
                  else{

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

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

 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 =@"fbAllDataValue";

        indicators.hidden=YES;
        [indicators stopAnimating];

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

    }
                      }];
                  }
                  else{

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

你的情况不对,那怎么解决呢?提前感谢。您使用的facebook sdk版本是哪一个?新版本是v4.17.0。您的情况不正确。那么如何修复它?提前感谢。您使用哪一个facebook sdk版本?新版本v4.17.0。