Facebook好友请求 - 失踪的朋友

时间:2015-05-06 08:35:41

标签: android facebook facebook-graph-api facebook-friends

我要求从我正在开发的Android应用中获取用户朋友。从Facebook Api V2.0开始,我知道我应该只获得已通过我的应用程序登录的用户朋友。但是,虽然我知道用户的某些朋友已通过我的应用程序登录,但在请求该用户的朋友时,他们不会出现在Facebook请求响应中。例如,我找回了40个朋友而不是50个以上。

之前有没有人经历过这种行为?我已经从少数用户删除了应用程序,通过登录重新授权,但我没有看到行为的任何变化。

以下是我正在使用的代码:

new Request(ParseFacebookUtils.getSession(),"me/friends", null, null, new Request.Callback(){

        @Override
        public void onCompleted(Response response) {

            if (response == null){ 
                return;
            }
            else if (response.getError() != null){
                response.getError().getException().printStackTrace();
                return;
            }

            GraphMultiResult result = response.getGraphObjectAs(GraphMultiResult.class);

            List<GraphObject> fbInList = result.getData();

            if (fbInList != null && !fbInList.isEmpty()){

                for (GraphObject user : fbInList) {

                    JSONObject jsonUser = user.getInnerJSONObject(); // The Facebook User
                    System.out.println("name: " + jsonUser.optString("name"));
                }       
            }
        }
    }).executeAsync();

2 个答案:

答案 0 :(得分:4)

我发现了什么问题。当我更新到最新的Facebook SDK时,Facebook只返回了25个朋友。我需要使用分页或为我的朋友请求添加限制。在以前的SDK上我不需要。

添加限制:

Bundle params = new Bundle();
params.putString("limit", "50"); // Up to 5000?
friendRequest.setParameters(params);

相关的堆栈溢出问题:

Facebook graph API 'friends' request now only returning 25 friends per page? What's going on?

newMyFriendsRequest Facebook returns only 25 friends

用于分页的有用Facebook链接:

https://developers.facebook.com/docs/graph-api/using-graph-api/v2.2#paging

答案 1 :(得分:0)

doc的相关部分就是这个

  

在API的v2.0中,我无法获得已登录我的应用程序的人的完整好友列表 - 是否有办法获得完整的朋友   列表吗

     

使用Graph API v2.0及更高版本,对/me/friends的调用仅返回   也使用你的应用程序的朋友。 这些朋友也必须得到批准   user_friends权限。在你想让人们的情况下   在您的应用发布的故事中标记他们的朋友,您可以使用   Taggable Friends API。如果您想邀请别人加入您的应用,我们   有许多解决方案取决于您构建的应用程序类型   以及您为之构建的平台。请看我们的问题   Inviting Friends了解更多信息。

因此,只有朋友使用您的应用,他们也应该授权user_friends,否则您将无法获得他们的详细信息。你做过这个吗?