我知道这里有很多问题,但我找不到合适的答案。
我正在使用Facebook SDK v3.18
我只想获取用户好友列表及其图片。
到目前为止我已经尝试了这个:
登录:
FBLoginView *loginView =
[[FBLoginView alloc] initWithReadPermissions:
@[@"public_profile", @"email", @"user_friends"]];
// Align the button in the center horizontally
loginView.frame = CGRectOffset(loginView.frame, (self.view.center.x - (loginView.frame.size.width / 2)), (self.view.center.y - (loginView.frame.size.height / 2)));
[self.view addSubview:loginView];
获取用户的好友列表及其图片:
[FBRequestConnection startWithGraphPath:@"/me/friends?fields=name,picture"
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(
FBRequestConnection *connection,
id result,
NSError *error
) {
/* handle the result */
}];
但答案是:
{
data = (
);
summary = {
"total_count" = 1216;
};
}
非我的朋友名字或图片显示:/
请为此对我说清楚。
提前致谢!
答案 0 :(得分:2)
从Facebook SDK page,看起来/我/朋友只会返回已登录并获得相同应用权限的朋友(即您和您的朋友需要允许您的应用通过Facebook使用Facebook登录)。
答案 1 :(得分:0)
你在下面试过吗?
FBRequest* friendsRequest = [FBRequest requestWithGraphPath:@"me/friends?fields=name" parameters:nil HTTPMethod:@"GET"];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
NSLog(@"Found: %i friends", friends.count);
for (NSDictionary<FBGraphUser>* friend in friends) {
NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
}
NSArray *friendIDs = [friends collect:^id(NSDictionary<FBGraphUser>* friend) {
return friend.id;
}];
}];
修改:
请查看此帖子。
Facebook Graph Api v2.0+ - /me/friends returns empty, or only friends who also use my app