【问题标题】:How to get Facebook friends list using FBSDK for iOS?如何使用 FBSDK for iOS 获取 Facebook 好友列表?
【发布时间】:2015-11-16 09:01:56
【问题描述】:

我想在我的应用程序中从 facebook 获取朋友列表。我能够正确获取total_friends,但结果中没有出现朋友列表。

我当前的代码不起作用:

代码:

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

【问题讨论】:

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


    【解决方案1】:

    我使用了类似的方法,但我的代码很快。您的朋友列表是他们的,但您不知道您必须创建一个数组的名称。并将您朋友的所有结果放入该数组中。并将其显示在您想要显示的任何位置。

    这是 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++
                        }
                    }
    
    
                }
    

    【讨论】:

    • 上面的代码只适用于@iPrabu 提供的条件和一个小的更正而不是“让朋友=结果.valueForKey(“数据”) as!NSArray”你应该只使用“让朋友 = result.valueForKey("数据")"。因为如果数据将 nil 展开,则会造成麻烦。
    【解决方案2】:

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

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

    您还必须向每个用户请求user_friends 权限

    【讨论】:

    • a) 有没有其他方法可以获取完整列表?如果否,那么没关系,我将使用 facebook 返回的任何朋友列表进行管理。 b) 我需要做什么才能获得user_friends 的许可?仅供参考,由于未授予权限,我没有收到任何错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多