1

我尝试使用以下权限登录用户到我的应用程序:

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);
    }
}];

这些方法给了我朋友,他们也使用我的应用程序,而不是整个朋友列表。我的方法有什么问题?如何从用户那里获取完整的好友列表?

4

1 回答 1

2

read_friendlists不是为了获取朋友,而只是为了获取您创建的列表(其中没有任何朋友)。在您使用之前,它还需要获得 Facebook 的批准,但这绝对不是您想要的。

user_friends用于访问也授权您的应用程序的朋友,使用/me/friends. 那将是适当的方式。

除非您想标记朋友(taggable_friends)或邀请朋友参加 Facebook Canvas 上的游戏( invitable_friends ),否则无法再获得所有朋友。

于 2014-12-15T16:55:30.673 回答