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

Posted

技术标签:

【中文标题】如何使用 FBSDK for iOS 获取 Facebook 好友列表?【英文标题】:How to get Facebook friends list using FBSDK for iOS? 【发布时间】: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

【问题讨论】:

【参考方案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 的许可?仅供参考,由于未授予权限,我没有收到任何错误。

以上是关于如何使用 FBSDK for iOS 获取 Facebook 好友列表?的主要内容,如果未能解决你的问题,请参考以下文章

使用 FBSDK for iOS 登录冻结

如何在 fbsdk 登录 React Native 中更改名称应用程序('项目想要使用 facebook.com')iOS

如何在 iOS 9 fb sdk 4.8 或更高版本中从 facebook 获取好友列表?

如何在swift 3中使用FBSDK获取fb页面列表或其位置ID

React-native fbsdk 获取名称和电子邮件

反应原生 fbsdk 我如何通过服务器获得长期访问令牌