如何使用FBSDK for iOS获取Facebook好友列表?

时间:2015-11-16 09:01:56

标签: ios objective-c facebook ios9 facebook-ios-sdk

我想在我的应用中从Facebook获取朋友列表。我能够正确地获取total_friends,但是朋友列表不会出现在结果中。

我当前的代码无效:

CODE:

NSMutableString *facebookRequest = [NSMutableString new];
[facebookRequest appendString:@"/me/friends"];
[facebookRequest appendString:@"?limit=100"];

NSDictionary *friendParams = @{@"fields" : @"name"};



FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"/me/friends"
                                                               parameters:friendParams
                                                               HTTPMethod:@"GET"];

[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {

    //my code here
}

输出:

{
    data =     (
    );
    summary =     {
        "total_count" = 661;
    };
}

我正在使用Xcode 7.1

2 个答案:

答案 0 :(得分:4)

我使用了类似的方法,但我的代码很快。你的朋友列表是他们的,但你没有得到你必须创建一个数组的名称。并将你朋友的所有结果都放到那个数组中。并在任何你想要展示的地方展示它。

以下是swift中Facebook好友的代码:

  let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me/friends", parameters: ["fields": "id,name,picture"])
        graphRequest.startWithCompletionHandler( { (connection, result, error) -> Void in

            if ((error) != nil)
            {

                print("Error: \(error)")
                return
            }
            else
            {                 
               let friends = result.valueForKey("data") as! NSArray
                var count = 1
                if let array = friends as? [NSDictionary] {
                    for friend : NSDictionary in array {
                        let name = friend.valueForKey("name") as! String
                        frindsFromGlobal.append(name)
                        count++
                    }
                }


            }

答案 1 :(得分:3)

从v2.0 /me/friends只会返回正在使用您的应用的朋友。

因此,在您的情况下,您在developer.facebook.com中创建的应用程序未经您的任何朋友授权或使用

此外,您必须获得每个用户的user_friends权限