4

我要求从我正在开发的 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();
4

2 回答 2

4

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

添加限制:

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

相关堆栈溢出问题:

Facebook 图形 API 的“好友”请求现在每页只返回 25 个好友?这是怎么回事?

newMyFriendsRequest Facebook 只返回 25 个朋友

用于分页的有用 Facebook 链接:

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

于 2015-05-14T08:36:29.787 回答
0

文档的相关部分是这个

在 API 的 v2.0 中,我无法获取已登录我的应用程序的人的完整朋友列表 - 有没有办法获取完整的朋友列表?

使用 Graph API v2.0 及更高版本,调用/me/friends仅返回也使用您的应用程序的朋友。这些朋友肯定也给了user_friends权限。如果您想让人们在您的应用发布的故事中标记他们的朋友,您可以使用 Taggable Friends API。如果您想邀请人们使用您的应用程序,我们有许多解决方案,具体取决于您构建的应用程序类型和您构建的平台。请参阅我们关于 邀请朋友的问题以获取更多信息。

因此,除了只有朋友使用您的应用程序外,他们还应该获得授权,user_friends否则您将无法获得他们的详细信息。你做过吗?

于 2015-05-12T09:39:16.923 回答