简体   繁体   English

如何从 Facebook API 获取完整的用户详细信息

[英]How to fetch complete user details from Facebook API

How to fetch complete userDetails from the Facebook API如何从 Facebook API 获取完整的 userDetails

    - (void)viewDidLoad {
        [super viewDidLoad];

        // Uncomment to automatically sign in the user.
        _signInFacebook.delegate = self;
        _signInFacebook.readPermissions =  @[@"email",@"birthday"];

    }

- (void)  loginButton:(FBSDKLoginButton *)loginButton
didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result
                error:(NSError *)error{
    NSLog(@"LOGGED IN TO FACEBOOK");
    [self fetchUserInfo];
}


-(void)fetchUserInfo {

    FBSDKAccessToken* token = [FBSDKAccessToken currentAccessToken];
    [[[FBSDKGraphRequest alloc] initWithGraphPath:[NSString stringWithFormat:@"/%@",token.userID] parameters:@{ @"fields":@"id,name,first_name,middle_name,last_name,email,gender,location,picture.type(large),age_range,verified,birthday"}  HTTPMethod:@"GET"]
     startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
         if (!error) {
             NSLog(@"fetched user:%@", result);

             if ([result isKindOfClass:[NSDictionary class]])
             {
                 NSLog(@"%@",result);
                 [USERDEFAULTS setObject:result forKey:PROFILE_KEY];
             }

         }
         else
         {
             NSLog(@"Error fetchUserInfo %@",error);
         }
     }];

}

Expecting mobile number to fetch from facebook API期望从 facebook API 获取手机号码

You should use "picture" instead of "photo" to get user profile photo.您应该使用“图片”而不是“照片”来获取用户个人资料照片。 And you can get userID form the accessToken like:您可以从 accessToken 中获取用户 ID,例如:

FBSDKAccessToken* token = [FBSDKAccessToken currentAccessToken];
NSString *ID = token.userID

When log in:登录时:
To get birthday, you need permission "user_birthday"要获得生日,您需要“user_birthday”权限
To get location, you need permission "user_location"要获取位置,您需要“user_location”权限

You can test everything in Facebook Graph API Explorer before implementing in your app.在您的应用中实施之前,您可以在 Facebook Graph API Explorer 中测试所有内容。

To request for permission when logging in, sample code:登录时请求权限,示例代码:

FBSDKLoginManager* login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions:@[@"public_profile",@"email",@"user_birthday"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    //your code to handle login result
}];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM