0

I am trying to get facebook friendlist with their profile picture but i didn't get any success in it. Here is the code

public class MainActivity extends Activity {

private final static String TAG = "MainActivity";

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);   

    Session.openActiveSession(this, true, new Session.StatusCallback(){

        @Override
        public void call(Session session, SessionState state,
                Exception exception) {

            requestMyAppFacebookFriends(session);

        }

    });


  }

  private Request createRequest(Session session) {
        Request request = Request.newGraphPathRequest(session, "me/friends", null);

        Set<String> fields = new HashSet<String>();
        String[] requiredFields = new String[] { "id", "name", "picture"};
        fields.addAll(Arrays.asList(requiredFields));

        Bundle parameters = request.getParameters();
        parameters.putString("fields", TextUtils.join(",", fields));
        request.setParameters(parameters);

        return request;
    }


  private void requestMyAppFacebookFriends(Session session) {
        Request friendsRequest = createRequest(session);
        friendsRequest.setCallback(new Request.Callback() {

            @Override
            public void onCompleted(Response response) {
                List<GraphUser> friends = getResults(response);
               Log.v(TAG, "friends list size "+friends.size());
            }
        });
        friendsRequest.executeAsync();
    }

  private List<GraphUser> getResults(Response response) {
        GraphMultiResult multiResult = response.getGraphObjectAs(GraphMultiResult.class);
        GraphObjectList<GraphObject> data = multiResult.getData();
        return data.castToListOf(GraphUser.class);
    }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
  }

The problem i am facing is that when i try to get graphobject response.getGraphObjectAs(GraphMultiResult.class) it returns null. So guide me what i'm doing wrong here or is there is any other way of getting a facebook friend.

user2934930
  • 1,076
  • 2
  • 12
  • 26

1 Answers1

0

Probably you're using v2.0 of the Graph API. With that, you'll only get the friends which also use the same app.

See retrieve full list of friends using facebook API

Community
  • 1
  • 1
Tobi
  • 31,405
  • 8
  • 58
  • 90