Facebook好友请求 - 好友失踪

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();

你的应用程序是否已被Facebook批准?这些人是否已添加到FB开发控制台上的测试人员/开发人员部分?你的应用程序是否对公众开放? - Skynet
实际上,是的,他们被添加为测试人员,这有问题吗?是的,它对公众开放,没有使用额外的权限,因此我不需要登录审核。顺便说一下,该应用已经上线了几个月。 - z3n105
好的,“应用已经上线几个月了”。自4月30日以来,他们的API已经发生了变化,你知道吗? - Skynet
是的,这是从https://developers.facebook.com/docs/apps/faq#mandatory提取的内容:如果您的应用程序请求超过public_profile、email和user_friends权限,则必须进行登录审核。不要求超出这三个权限的权限的应用程序无需经过登录审核。在4月30日之后,我们将开始删除未经登录审核批准使用的任何权限的访问权限。 - z3n105
2个回答

4
我已经找到了问题所在。当我更新到最新的Facebook SDK时,Facebook只返回了25个好友。我需要使用分页或者在我的好友请求中添加限制。在之前的SDK中,我不需要这样做。
添加限制:
Bundle params = new Bundle();
params.putString("limit", "50"); // Up to 5000?
friendRequest.setParameters(params);

相关的Stack Overflow问题:

Facebook graph API 'friends'请求现在每页仅返回25个朋友?发生了什么?

newMyFriendsRequest Facebook仅返回25个朋友

分页的有用Facebook链接:

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


0

对于您来说,文档中相关的部分是这个:

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

使用Graph API v2.0及以上版本,调用/me/friends仅返回也使用您的应用程序的朋友。 这些朋友还必须授予user_friends权限。 在您想要让人们在您的应用程序发布的故事中标记他们的朋友的情况下,您可以使用可标记朋友的API。 如果您想邀请人们使用您的应用程序,我们有许多解决方案,这取决于您构建的应用程序类型和平台。 有关更多信息,请参见我们关于邀请朋友的问题。

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


是的,我已经在他们的Facebook应用程序中检查过了,并且他们已经接受了user_friends权限。我还要求他们从Facebook中删除该应用程序,然后重新授权,但这也没有起作用。 - z3n105
请按照提到的方式报告错误。另外,你的FB应用程序ID是什么? - deesarus
好的,我会尝试报告它。 - z3n105

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接