facebook sdk 3.0 возвращает пустые оценки друзей (android)

Я пытаюсь использовать счет API Facebook.

поэтому я публикую оценку следующим образом:

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);
}

успеха!

и я получаю оценки пользователей следующим образом:

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);
}

успеха!!!

НО, когда я пытаюсь получить все баллы друзей, вот так:

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);
}

*ЭТО РАБОТАЕТ! (НЕТ ОШИБКИ), НО ЭТО ВОЗВРАЩАЕТ ПУСТОЙ ДЖЕЙСОН :( *

Спасибо за помощь!!!!

Якир.


person Fashizel    schedule 29.12.2013    source источник


Ответы (1)


ты так близко

Вам не нужна первая косая черта, и вы передаете идентификатор ресурса вместо фактического IP-адреса приложения. Таким образом, обновленный код будет выглядеть так.

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);
}
person Amazing Aidan    schedule 20.02.2014