我试图得到我的朋友的名字和id与图形API v2.0,但数据返回空:

{
  "data": [
  ]
}

当我使用v1.0时,以下请求一切正常:

FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
                                              NSDictionary* result,
                                              NSError *error) {
    NSArray* friends = [result objectForKey:@"data"];
    NSLog(@"Found: %i friends", friends.count);
    for (NSDictionary<FBGraphUser>* friend in friends) {
        NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
    }
}];

但是现在我找不到朋友了!


当前回答

如果你在开发模式上还在为这个问题而挣扎。 遵循如下所述的相同流程:

为你的主应用创建一个测试应用, 创建测试用户,自动为测试用户安装app,并为他们分配“user_friend”权限。 将测试用户添加为彼此的好友。

经过大量的研究,我遵循了同样的过程,最终它成功了。

其他回答

Facebook现在已经修改了他们的政策。如果你的应用没有Canvas实现,如果你的应用不是游戏,你就无法获得整个好友列表。当然,还有taggable_friends,但那个只用于标记。

你将能够拉的朋友谁已授权的应用程序的名单。

使用Graph API 1.0的应用程序将持续到2015年4月30日,之后将被弃用。

请参阅以下内容了解更多详细信息:

用户的朋友 Facebook应用开发常见问题

试着/我/ taggable_friends吗?limit=5000使用JavaScript代码

Or

试试Graph API:

https://graph.facebook.com/v2.3/user_id_here/taggable_friends?access_token=

如果你在开发模式上还在为这个问题而挣扎。 遵循如下所述的相同流程:

为你的主应用创建一个测试应用, 创建测试用户,自动为测试用户安装app,并为他们分配“user_friend”权限。 将测试用户添加为彼此的好友。

经过大量的研究,我遵循了同样的过程,最终它成功了。

在Swift 4.2和Xcode 10.1中:

如果你想从Facebook获得好友列表,你需要在Facebook上提交应用进行审查。请参阅一些登录权限:

登录权限

以下是两个步骤:

1)首先你的应用状态必须在Live中

2)从Facebook获得所需的权限。

1)启用我们的应用状态

进入应用程序页面,选择你的应用程序 https://developers.facebook.com/apps/ 在“仪表板”的右上方选择状态。 提交隐私政策URL 选择类别 现在我们的应用程序处于Live状态。

完成了第一步。

2)提交应用进行审核:

首先发送所需的请求。 例如:user_friends, user_videos, user_posts等。 其次,转到当前请求页面 例如:user_events 提交所有详细资料 像这样提交所有请求(user_friends, user_events, user_videos, user_posts等)。 最后提交应用进行审查。 如果你的评论被Facebook接受,你现在就有资格阅读联系人等等。

在2.0版的Graph API中,调用/me/friends会返回此人同样使用该应用程序的朋友。

此外,在v2.0中,必须向每个用户请求user_friends权限。默认情况下,User_friends不再包含在每次登录中。每个用户必须授予user_friends权限,以便出现在对/me/friends的响应中。有关更详细的信息,请参阅Facebook升级指南,或查看下面的摘要。

如果你想访问未使用应用程序的好友列表,有两个选项:

If you want to let your people tag their friends in stories that they publish to Facebook using your App, you can use the /me/taggable_friends API. Use of this endpoint requires review by Facebook and should only be used for the case where you're rendering a list of friends in order to let the user tag them in a post. If your App is a Game AND your Game supports Facebook Canvas, you can use the /me/invitable_friends endpoint in order to render a custom invite dialog, then pass the tokens returned by this API to the standard Requests Dialog.

在其他情况下,应用程序不再能够检索用户的朋友的完整列表(只有那些特别授权你的应用程序使用user_friends权限的朋友)。Facebook已经证实这是“故意的”。

对于想要允许人们邀请朋友使用应用程序的应用程序,你仍然可以使用Web上的发送对话框或iOS和Android上的新消息对话框。

更新:Facebook发布了一个关于这些变化的常见问题解答:https://developers.facebook.com/docs/apps/faq,其中解释了所有可供开发者邀请好友等的选项。