如何使用 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 登录 React Native 中更改名称应用程序('项目想要使用 facebook.com')iOS
如何在 iOS 9 fb sdk 4.8 或更高版本中从 facebook 获取好友列表?