解析 Facebook 登录不返回所有字段(它只返回 id 和 name)[重复]
Posted
技术标签:
【中文标题】解析 Facebook 登录不返回所有字段(它只返回 id 和 name)[重复]【英文标题】:Parse Facebook Login not returning all fields (it returns only id and name) [duplicate] 【发布时间】:2015-09-24 06:24:02 【问题描述】:我正在使用解析框架来管理用户。 我的应用中有一个选项,用户可以从 facebook 登录。
我已经在 plist 文件中链接了 FacebookAppID 和 URL 方案。
根据解析文档,这里推荐的代码如下
[PFFacebookUtils logInWithPermissions:@[ @"email",@"user_about_me", @"user_relationships", @"user_birthday", @"user_location"] block:^(PFUser *user, NSError *error)
if (user)
NSLog(@"User authenticated from facebook.");
FBRequest *request = [FBRequest requestForMe];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
if (!error)
NSLog(@"Facebook id fetched.");
// result is a dictionary with the user's Facebook data
NSDictionary *userData = (NSDictionary *)result;
else
// User not authenticated
]];
现在你可以看到我已经为 email、user_about_me、user_relationships、user_birthday、user_location
输入了适当的权限但我从 facebook 获得的 result 字典每次只为每个用户返回 name 和 id。
我还想要其他信息。有人知道为什么我没有得到所有用户数据吗?
不重复
【问题讨论】:
【参考方案1】:使用此代码-
-(void)fectchUserInfo
FBRequest *req = [[FBRequest alloc] initWithSession:[FBSession activeSession] graphpath:@"me?
fields=first_name,last_name,gender,id,email"];
[req startWithCompletionHandler:^(FBRequestConnection *connection, id result,NSError *error)
if(error)
NSLog(@"fb error");
[self handleAuthError:error];
return;
else
facebookFirstName = [result objectForKey:@"first_name"];
facebookLastName = [result objectForKey:@"last_name"];
facebookID = [result objectForKey:@"id"];
facebookEmail = [result objectForKey:@"email"];
NSLog(@"fb data:%@ %@ %@ %@ ",facebookFirstName,facebookLastName,facebookID,facebookEmail);
facebookPassword = [NSString stringWithFormat:@"%@_%@",facebookID,@"fb"];
NSLog(@"fb password is :%@",facebookPassword);
];
【讨论】:
它也只显示 id 和 name以上是关于解析 Facebook 登录不返回所有字段(它只返回 id 和 name)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Facebook 登录在用户个人资料中返回“未定义”字段,并且不返回电子邮件。 MEANJs + Passport-facebook
iOS:为 Facebook 解析登录,在用户名字段中创建一些哈希