Frage

im trying to use facebook's score api.

so i'm posting the score like this:

public void postScore(int score) {
    Bundle fbParams = new Bundle();
    fbParams.putString("score", "" + score);
    Request postScoreRequest = new Request(Session.getActiveSession(),
            "me/scores", fbParams, HttpMethod.POST, new Request.Callback() {

                @Override
                public void onCompleted(Response response) {
                    FacebookRequestError error = response.getError();
                    if (error != null) {
                        Log.e("posting score",
                                "Posting Score to Facebook failed: "
                                        + error.getErrorMessage());
                    } else {
                        Log.i("posting score",
                                "Score posted successfully to Facebook");
                    }
                }
            });
    Request.executeBatchAsync(postScoreRequest);
}

success!

and im getting the users score like this:

public static void getScore() {
    Request postScoreRequest = new Request(Session.getActiveSession(),
            "me/scores", null, HttpMethod.GET, new Request.Callback() {

                @Override
                public void onCompleted(Response response) {
                    FacebookRequestError error = response.getError();
                    if (error != null) {
                        Log.d("getting score",
                                "Getting Score from Facebook failed: "
                                        + error.getErrorMessage());
                        Scores.isMyScoreLoaded = false;
                    } else {
                        Log.d("getting score",
                                "Got Score  successfully from Facebook");
                        Log.d("score object", response.getGraphObject()
                                .getInnerJSONObject().toString());
                        Scores.isMyScoreLoaded = true;

                    }

                }
            });
    Request.executeBatchAsync(postScoreRequest);
}

success!!!

BUT when im trying to get all of friends scores, like this:

public static void getFriendsScores() {

    Request postScoreRequest = new Request(Session.getActiveSession(), "/"
            + R.string.app_id + "/scores", null, HttpMethod.GET,
            new Request.Callback() {

                @Override
                public void onCompleted(Response response) {
                    FacebookRequestError error = response.getError();
                    if (error != null) {
                        Log.d("getting all scores",
                                "Getting Scores from Facebook failed: "
                                        + error.getErrorMessage());
                        Scores.isFriendsScoresLoaded = false;
                    } else {
                        Log.d("getting all scores",
                                "Got Scores successfully from Facebook");
                        Log.d("score object", response.getGraphObject()
                                .getInnerJSONObject().toString());
                        Scores.isFriendsScoresLoaded = true;

                    }

                }
            });
    Request.executeBatchAsync(postScoreRequest);
}

*IT WORKS! (NO ERROR ) BUT IT RETURNES AN EMPTY JASON :( *

thank you for the help!!!!

Yakir.

War es hilfreich?

Lösung

You are so close

You don't need the first forward slash and you were passing the resourceID instead of the actual App IP. So the updated code will look like this..

public static void getFriendsScores() {

    Request postScoreRequest = new Request(Session.getActiveSession(), 
            getResources().getString(R.string.app_id) +"/scores", null, HttpMethod.GET,
            new Request.Callback() {

                @Override
                public void onCompleted(Response response) {
                    FacebookRequestError error = response.getError();
                    if (error != null) {
                        Log.d("getting all scores",
                                "Getting Scores from Facebook failed: "
                                        + error.getErrorMessage());
                        Scores.isFriendsScoresLoaded = false;
                    } else {
                        Log.d("getting all scores",
                                "Got Scores successfully from Facebook");
                        Log.d("score object", response.getGraphObject()
                                .getInnerJSONObject().toString());
                        Scores.isFriendsScoresLoaded = true;

                    }

                }
            });
    Request.executeBatchAsync(postScoreRequest);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top