无法从Android中的Facebook获取好友列表.获取带有计数的空白数组



我尝试使用这些引用:https://developers.facebook.com/docs/graph-api/reference/user/friends

如何使用Android Facebook SDK从Facebook获取好友列表?

如何在安卓中获取脸书好友列表?我正在使用脸书 SDK 4.0.1

我也尝试了其他参考资料,但我无法为我的问题找到解决方案。

这是我的代码

LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(final LoginResult loginResult) {
            GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                @Override
                public void onCompleted(JSONObject object, GraphResponse response) {
                    System.out.println("Facebook recponse = "+response);
                    try {
                        sSocialId = object.getString("id");
                        if (object.has("email")) {
                            sEmail = object.getString("email");
                        }
                        sSocialType = "fb";
                        sFirstname = object.getString("first_name");
                        sLastname = object.getString("last_name");
                        String gender = object.getString("gender");
                        sGender = gender;
                        sUserImageUrl = "https://graph.facebook.com/" + sSocialId + "/picture?type=large";
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    AccessToken token1   =  AccessToken.getCurrentAccessToken();
                    /*
                     make the API call
                    */
                    new GraphRequest(loginResult.getAccessToken(),
                            "/me/friendlists",
                            null,
                            HttpMethod.GET,
                            new GraphRequest.Callback() {
                                public void onCompleted(GraphResponse response) {
                                    try {
                                        JSONArray rawName = response.getJSONObject().getJSONArray("data");
                                        String  friendList = "{"friendlist":" + rawName.toString() + "}";
                                        Log.d("TAG","response of friendlist is : " + friendList);
                                    } catch (JSONException e) {
                                        e.printStackTrace();
                                    }
                                }
                            }
                    ).executeAsync();
                    Toast.makeText(HomeActivity.this,"Login successfull...",Toast.LENGTH_LONG).show();
                }
            });
            Bundle parameters = new Bundle();
            parameters.putString("fields", "id, first_name, last_name,gender, email,picture,friends{id,name,picture}");
            request.setParameters(parameters);
            request.executeAsync();
        }
        @Override
        public void onCancel() {
            Toast.makeText(HomeActivity.this, "Facebook login cancelled", Toast.LENGTH_SHORT).show();
        }
        @Override
        public void onError(FacebookException exception) {
            Toast.makeText(HomeActivity.this, "Error in Facebook login", Toast.LENGTH_SHORT).show();
        }
    });
public void getFriendList(String id) { //fbId 
    fbFriendsList = new ArrayList<>();
    new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "/" + id + "/friends",
            null,
            HttpMethod.GET,
            new GraphRequest.Callback() {
                public void onCompleted(GraphResponse response) {
                    Log.e("response", response.toString());
                    try {
                        JSONArray frienArray = ((JSONArray) (response.getJSONObject().get("data")));
                        for (int i = 0; i < frienArray.length(); i++) {
                            FbFriends fbFriends = new FbFriends();
                            JSONObject jsonObject = frienArray.getJSONObject(i);
                            fbFriends.setFbId(jsonObject.getString("id"));
                            fbFriendsList.add(fbFriends);
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
        /* handle the result */

                }
            }
    ).executeAsync();

}

这里fbFreindsList是一个模型类fbFriends的列表,这里我只取fbfriends的id,你也可以根据自己的要求获取数据

最新更新