从 parse 获取 Facebook 分数上的朋友
Posted
技术标签:
【中文标题】从 parse 获取 Facebook 分数上的朋友【英文标题】:Getting friends on facebook's scores from parse 【发布时间】:2014-01-03 19:22:03 【问题描述】:所以我终于让我的应用程序让用户登录 Facebook 并进行解析。让我们将我的应用称为游戏,即使它不是游戏,并且假设我上传了某人每次玩游戏时获得的最新分数。所以我所做的是上传“分数”以在用户下解析。现在,我希望用户能够看到 Facebook 分数上的朋友。所以,我让用户登录了,现在我如何检查他们的朋友是否在使用我的“游戏”,然后将他们的电子邮件与解析中的电子邮件进行匹配以获得分数?到目前为止,我可以获取登录用户的好友 ID。
顺便说一句。用户必须登录 facebook 并为我的应用创建一个解析帐户
我知道我必须使用查询来从解析中获取内容,我想我的主要问题是如何获取 facebook 用户的电子邮件?
这就是我获取他们的身份的方式:
- (void)getFacebookInfo
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
if (!error)
// Set user's information
NSString *facebookId = [result objectForKey:@"id"];
NSString *facebookName = [result objectForKey:@"name"];
if (facebookName && facebookName.length != 0)
[[PFUser currentUser] setObject:facebookName forKey:@"displayName"];
if (facebookId && facebookId.length != 0)
[[PFUser currentUser] setObject:facebookId forKey:@"facebookId"];
[[PFUser currentUser] saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
// Get user's friend information
[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
if (!error)
NSArray *data = [result objectForKey:@"data"];
NSMutableArray *facebookIds = [[NSMutableArray alloc] initWithCapacity:data.count];
for (NSDictionary *friendData in data)
[facebookIds addObject:[friendData objectForKey:@"id"]];
[[PFUser currentUser] setObject:facebookIds forKey:@"facebookFriends"];
[[PFUser currentUser] saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
// We're in!
NSLog(@"%@", facebookName);
[self dismissViewControllerAnimated:YES completion:NULL];
];
else
[self showErrorAlert];
];
];
else
[self showErrorAlert];
];
【问题讨论】:
【参考方案1】:为了在startForMyFriendsWithCompletionHandler
的完成处理程序中获取 Facebook 用户的电子邮件地址,请使用:
[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
if (!error)
NSArray *data = [result objectForKey:@"data"];
for (NSDictionary *friendData in data)
//This is each friend's email address
NSString *aFriendsEmail = [friendData objectForKey:@"email"];
];
【讨论】:
当我尝试登录好友电子邮件时,它会记录为空。但是,它会记录其他信息,但我仍然需要一封电子邮件。还有其他方法吗? 当你记录“friendData”时会发生什么,例如 NSLog(@"%@",friendData); ? 我得到了很多信息,比如用户名和用户 ID。但我需要他们的电子邮件。以上是关于从 parse 获取 Facebook 分数上的朋友的主要内容,如果未能解决你的问题,请参考以下文章
在 Parse 中使用 FBgraphUser 从 Facebook 获取用户电子邮件
Facebook graph API V2.0 - 如何获取组上下文? (我的朋友的成员)