Android Facebook SDK如何获取安装我的应用程序的所有朋友列表

时间:2016-07-27 10:29:17

标签: android facebook facebook-graph-api

我成功找到了安装我的应用程序的朋友但是我有一个案例,那就是已经安装了我的应用程序的一些朋友,当我请求获取朋友列表时我找不到他们安装了我的应用。我想由于他们的Facebook隐私而没有列出。这样对吗 ?或者问题是什么?

这是我的请求代码

        public void find_facebook_friends()
{            

    GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback()
    {
        @Override
        public void onCompleted(JSONObject object, GraphResponse response)
        {

            JSONObject json = response.getJSONObject();

            try
            {
                String friend_name = null;
                String friend_id = null;
                if (json != null)
                {
                    String js = json.toString();
                    String res = response.toString();
                    JSONObject c = response.getJSONObject();
                    JSONObject myfriends = null;

                    try
                    {
                        myfriends = c.getJSONObject("friends");
                    }
                    catch (JSONException e)
                    {
                        e.printStackTrace();
                    }

                    if (myfriends != null)
                    {
                        JSONArray mydata = myfriends.getJSONArray("data");
                        facebookfriends_namesArray = null;
                        facebookfriends_idArray = null;
                        for (int i = 0; i < mydata.length(); i++)
                        {

                            JSONObject jsonobject = mydata.getJSONObject(i);
                            friend_id = jsonobject.getString("id");
                            friend_name = jsonobject.getString("name");
                        }
                    }

                }
            }
            catch (JSONException e)
            {
                e.printStackTrace();

            }
        }
    });
    Bundle parameters = new Bundle();
    parameters.putString("fields", "id,name,link,email,picture,gender,friends, birthday,first_name,last_name,locale,timezone,updated_time,verified,friendlists");
  request.setParameters(parameters);
    request.executeAsync();
}

1 个答案:

答案 0 :(得分:1)

试试这个。请确保您的阅读权限包括user_friends,如下所示

loginButton.setReadPermissions("email", "public_profile","user_friends");
        loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Log.d(TAG, "facebook:onSuccess:" + loginResult);

            }

            @Override
            public void onCancel() {
                Log.d(TAG, "facebook:onCancel");
            }

            @Override
            public void onError(FacebookException error) {
                Log.d(TAG, "facebook:onError", error);
            }
        });

然后得到这样的朋友

 GraphRequest request = GraphRequest.newMyFriendsRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONArrayCallback() {
                                    @Override
                                    public void onCompleted(JSONArray jsonArray, GraphResponse graphResponse) {

}
});

或获取请求

String urll="https://graph.facebook.com/v2.7/me/friends?access_token="+ user accesstoken;

参考: - http://coderzpassion.com/android-using-facebook-login-application-using-latest-facebook-sdk/