![](/img/trans.png)
[英]How to fetch user's birthday from Facebook API in iOS using latest Facebook sdk?
[英]How to fetch complete user details from 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);
}
}];
}
期望从 facebook API 获取手机号码
您应该使用“图片”而不是“照片”来获取用户个人资料照片。 您可以从 accessToken 中获取用户 ID,例如:
FBSDKAccessToken* token = [FBSDKAccessToken currentAccessToken];
NSString *ID = token.userID
登录时:
要获得生日,您需要“user_birthday”权限
要获取位置,您需要“user_location”权限
在您的应用中实施之前,您可以在 Facebook Graph API Explorer 中测试所有内容。
登录时请求权限,示例代码:
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.