我正在尝试使用 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); } }];
但是现在我交不到朋友!
在 Graph API 的 v2.0 中,调用/me/friends会返回该人也使用该应用程序的朋友。
/me/friends
此外,在 v2.0 中,您必须向user_friends每个用户请求权限。user_friends不再默认包含在每次登录中。每个用户必须授予user_friends权限才能出现在对 的响应中/me/friends。有关更多详细信息,请参阅Facebook 升级指南,或查看下面的摘要。
user_friends
如果您想访问不使用应用程序的朋友列表,有两种选择:
如果您想让您的人 在他们使用您的应用程序发布到 Facebook 的故事中标记他们的朋友,您可以使用/me/taggable_friendsAPI。使用此端点需要 Facebook 审核,并且仅应用于您呈现朋友列表以便让用户在帖子中标记他们的情况。
/me/taggable_friends
如果您的应用是游戏并且您的游戏支持 Facebook Canvas ,您可以使用/me/invitable_friends端点来呈现自定义邀请对话框,然后将此 API 返回的令牌传递给标准请求对话框。
/me/invitable_friends
在其他情况下,应用程序不再能够检索用户朋友的完整列表(只有那些专门授权您的应用程序使用user_friends权限的朋友)。这已被 Facebook 确认为“设计使然”。
对于希望允许人们邀请朋友使用应用程序的应用程序,您仍然可以使用Web上的发送对话框或iOS和Android上的新消息对话框。
更新:Facebook 已在此处发布了有关这些更改的常见问题解答:https://developers.facebook.com/docs/apps/faq ,其中解释了开发人员可用于邀请朋友等的所有选项。