我尝试使用以下权限将用户登录到我的应用程序:
NSArray* permissions = [[NSArray alloc] initWithObjects:@"email", @"read_friendlists", @"user_friends", nil];
登录后,我没有得到"read_friendlists"权限
[FBRequestConnection startWithGraphPath:@"/me/permissions"....];
请求。
我想这就是我无法获得完整朋友列表的原因。
我尝试使用以下方法获取列表:
[FBRequestConnection startWithGraphPath:@"me/friends"
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(
FBRequestConnection *connection,
id result,
NSError *error
) {
NSLog(@"FriendList: %@", result);
/* handle the result */
}];
和
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
NSLog(@"Found: %i friends", friends.count);
for (NSDictionary<FBGraphUser>* friendIns in friends) {
NSLog(@"I have a friend named %@ with id %@", friendIns.name, friendIns.id);
}
}];
这些方法为我提供了朋友,他们也使用我的应用程序,而不是整个朋友列表。我的方法有什么问题?如何从用户那里获取完整的好友列表?
read_friendlists
不是为了获得朋友,而只是为了获取您创建的列表(其中没有任何朋友)。它还需要Facebook的批准才能使用它,但这绝对不是你想要的。
user_friends
用于访问授权您的应用程序的朋友,/me/friends
.这将是适当的方式。
没有办法再让所有朋友都得到,除非你想标记朋友(taggable_friends)或邀请朋友参加Facebook Canvas上的游戏(invitable_friends)。