我试图通过此代码访问我自己的Facebook好友列表,结果JSON不会返回任何数据。
FBRequest *request = [FBRequest requestWithGraphPath:@"me/friends" parameters:nil HTTPMethod:@"GET"];
我设置了这样的权限(我正在使用PARSE)
[PFFacebookUtils linkUser:[PFUser currentUser] permissions:@[@"user_friends"] block:^(BOOL succeeded, NSError *error)
我错过了什么吗?
答案 0 :(得分:7)
您使用的是API的API吗? Facebook最近做了一个很大的改变,所以这个API调用现在只返回使用了发出请求的应用程序的朋友。换句话说,您无法获取整个朋友列表,只能访问相关应用的朋友。
更多信息:
https://developers.facebook.com/docs/graph-api/reference/v2.0/user/friends
您可以使用页面右上角的下拉列表查看版本1.0和版本2.0之间的区别。
如果您使用的是新的2.0 iOS SDK,FBRequest
有一个实例方法可以针对特定请求使用不同版本的API。
在这种情况下,在您启动请求之前,您可以执行
[request overrideVersionPartWith:@"v1.0"];
尽管如v1.0 page所述:
用户使用2.0版(或更高版本)登录应用后, 为v1.0调用此边缘将继续返回更高版本的版本 响应。
基本上,为了使这项工作,您的登录方法也必须是旧方法。
如果这是您需要的功能,取决于您计划支持此应用程序的时间长短,更简单的选择可能只是使用旧版本的Facebook SDK,至少暂时如此。它将在大约一年内得到支持,此时您的要求可能会发生变化,因此您可以更新,或者Facebook可能会为我们提供再次获取用户的整个朋友列表的能力,这很不可能。
使用旧API的最后一个版本是3.13.1
。
您可以使用其他一些可能的选项,具体取决于您尝试对朋友列表执行的操作。本网站的其他答案中有大量信息,here is one with a good discussion。