private void makeGraphCall() { // If you're using the paging URLs they will be URLEncoded, let's decode them. try { graphPath = URLDecoder.decode(graphPath, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } String[] urlParts = graphPath.split("\\?"); String graphAction = urlParts[0]; GraphRequest graphRequest = GraphRequest.newGraphPathRequest( AccessToken.getCurrentAccessToken(), graphAction, new GraphRequest.Callback() { @Override public void onCompleted(GraphResponse response) { if (graphContext != null) { if (response.getError() != null) { graphContext.error(getFacebookRequestErrorResponse(response.getError())); } else { graphContext.success(response.getJSONObject()); } graphPath = null; graphContext = null; } } }); Bundle params = graphRequest.getParameters(); if (urlParts.length > 1) { String[] queries = urlParts[1].split("&"); for (String query : queries) { int splitPoint = query.indexOf("="); if (splitPoint > 0) { String key = query.substring(0, splitPoint); String value = query.substring(splitPoint + 1, query.length()); params.putString(key, value); } } } graphRequest.setParameters(params); graphRequest.executeAsync(); }