Android FaceBook newMyFriendsRequest返回EMPTY好友列表

时间:2014-06-04 17:49:47

标签: android facebook facebook-graph-api parse-platform

我正在使用Parse和Facebook开发我的第一个Android应用程序,所以我对它很陌生。

我尝试使用Request.newMyFriendsRequest()检索用户的好友列表,但在使用真实用户进行测试时,它会为我提供一个空列表。

据我所知,Graph API v2.0此请求只会返回同时使用此应用的朋友的一组。

出于这个目的,我创建了一个虚假的Fb个人资料,我在Facebook上与我的真实个人资料成为了他的朋友,安装了我的应用程序,在ParseUser注册并使用ParseFacebookUtils.link与两个个人资料相关联的Facebook,但请求会返回空的朋友列表

我在Facebook的App仪表板中创建了几个测试用户,并模拟了他们之间的几个友谊。我在我的应用中进行了相同的处理(使用parseUser注册,与ParseFacebookUtils.link相关联),其中包含其中两个,列表users.size() 按预期返回2位朋友。

为什么它不适用于我的实际个人资料和虚假个人资料(就像任何其他真实资料一样)??

这就是我关联个人资料的方式:

List<String> permissions = new ArrayList<String>();
permissions.add("public_profile");
permissions.add("user_friends");

ParseFacebookUtils.link(currentUser, permissions, MainActivity.this, new SaveCallback() {
     @Override
     public void done(ParseException ex) {
          if (ParseFacebookUtils.isLinked(currentUser)) {
             Log.d(TAG, "Woohoo, user logged in with Facebook!");
             Toast.makeText(getApplicationContext(), "Facebook succesfully linked", Toast.LENGTH_LONG).show();
          }
          if (ex != null) {
             Log.d (TAG, ex.getLocalizedMessage() + "\n + Exception Code: " + ex.getCode());
          }
     });

这就是我如何请求朋友:

Request.newMyFriendsRequest(ParseFacebookUtils.getSession(), new GraphUserListCallback() {
    @Override
    public void onCompleted(List<GraphUser> users, Response response) {
         Log.d(TAG, "Request Completed!! " + response.toString() + "----" + users.size());
         if (users != null) {
             List<String> friendsList = new ArrayList<String>();
             for (GraphUser user : users) {
                friendsList.add(user.getId());
             }
         }
    }
}).executeAsync();.

但我无法弄清楚如何获取真实用户的朋友列表。使用我的个人资料,它应该返回1个朋友,他也使用正在开发的应用程序注册...

1 个答案:

答案 0 :(得分:1)

由于以下原因,我得到了一个空数组:

- This will only return any friends who have used (via Facebook Login) the app making the request.

请注意!