在Request.GraphUserListCallback上执行onCompleted并没有执行

时间:2015-03-22 18:43:28

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

我有这种方法和第一个日志打印,其他人没有

我做错了什么?

就是这样:Log.d(" insideGetFriends"," in");获取打印,我查看了我的日志,

Log.d(" facebookError",Integer.toString(graphUsers.size()));其余的行不会被执行。

 public ArrayList<ParseUser> getFriends(Session session)
    {
        Log.d("insideGetFriends","in");
        final ArrayList<ParseUser> users=new ArrayList<>();
        Request.newMyFriendsRequest(session,new Request.GraphUserListCallback() {
            @Override
            public void onCompleted(List<GraphUser> graphUsers, Response response) {

                Log.d("facebookError",Integer.toString(graphUsers.size()));

                for(GraphUser user:graphUsers)
                {
                    String facebookId=user.getId();
                    Log.d("facebookFriend",facebookId);
                    ParseQuery<ParseUser> query=ParseUser.getQuery();
                    query.whereEqualTo("facebookID",facebookId);
                    query.findInBackground(new FindCallback<ParseUser>() {
                        @Override
                        public void done(List<ParseUser> parseUsers, ParseException e) {
                            users.add(parseUsers.get(0));
                        }

                    });
                }
            }

        });
        return users;
    }

1 个答案:

答案 0 :(得分:7)

看起来您没有开始/执行请求。

您需要将Request.newMyFriendsRequest(...)的结果存储在变量中,然后在其上调用.executeAsync()。 这在此解释:https://developers.facebook.com/docs/android/graph#userdata