小编典典

Facebook Graph API v2.0+ - /me/friends 返回空,或仅返回也使用我的应用程序的朋友

all

我正在尝试使用 Graph API v2.0 获取我的朋友姓名和 ID,但数据返回空:

{
  "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);
    }
}];

但是现在我交不到朋友!


阅读 93

收藏
2022-03-28

共1个答案

小编典典

在 Graph API 的 v2.0 中,调用/me/friends会返回该人也使用该应用程序的朋友。

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

如果您想访问不使用应用程序的朋友列表,有两种选择:

  1. 如果您想让您的人 在他们使用您的应用程序发布到 Facebook 的故事中标记他们的朋友,您可以使用/me/taggable_friendsAPI。使用此端点需要 Facebook 审核,并且仅应用于您呈现朋友列表以便让用户在帖子中标记他们的情况。

  2. 如果您的应用是游戏并且您的游戏支持 Facebook Canvas ,您可以使用/me/invitable_friends端点来呈现自定义邀请对话框,然后将此 API 返回的令牌传递给标准请求对话框。

在其他情况下,应用程序不再能够检索用户朋友的完整列表(只有那些专门授权您的应用程序使用user_friends权限的朋友)。这已被 Facebook
确认为“设计使然”。

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

更新:Facebook
已在此处发布了有关这些更改的常见问题解答:https://developers.facebook.com/docs/apps/faq ,其中解释了开发人员可用于邀请朋友等的所有选项。

2022-03-28