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 に答える