Невозможно получить разрешения Facebook: birthday_date, about_me всегда null - PullRequest
0 голосов
/ 02 февраля 2012

Я запросил у Facebook информацию о днях рождения, дате и о правах доступа пользователя и друзей, но когда я запрашиваю эти поля, они становятся пустыми. У меня в json 150 друзей, у всех эти поля равны нулю, что указывает на то, что Facebook не авторизован. Запрос:

        String query = "select name,about_me,birthday_date, current_location, uid, pic_square,sex from user where uid in (select uid2 from friend where uid1=me()) order by name";
        Bundle params = new Bundle();
        params.putString("method", "fql.query");
        params.putString("query", query);
        response = Utility.mFacebook.request(null, params, "GET");

Ответ Json содержит следующие поля null.

"birthday_date": null,
"current_location": null,
"about_me": null,

Я использую следующий код для входа и получения разрешений от Facebook.

    Utility.mFacebook = new Facebook(Constants.MY_APP_ID);
    Utility.mAsyncRunner = new AsyncFacebookRunner(Utility.mFacebook);

    SessionStore.restore(Utility.mFacebook, this);
    SessionEvents.addAuthListener(new SampleAuthListener());
    SessionEvents.addLogoutListener(new SampleLogoutListener());
    String permissions[]=new String[]{"user_about_me","friends_about_me","user_birthday",
            "friends_birthday","user_location","friends_location","offline_access"};
    mLoginButton.init(this, Utility.mFacebook,permissions);

Метод кнопки onClick выглядит следующим образом.

    public void onClick(View arg0) {
        if (mFb.isSessionValid()) {
            SessionEvents.onLogoutBegin();
            AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(mFb);
            asyncRunner.logout(getContext(), new LogoutRequestListener());
        } else {
            mFb.authorize(mActivity, mPermissions,Facebook.FORCE_DIALOG_AUTH,
                          new LoginDialogListener());
        }
    }

1 Ответ

0 голосов
/ 02 февраля 2012

Вам не нужно запрашивать их, используя то же имя, что и разрешение? То есть это будет выглядеть так:

String query = "select name, user_about_me, user_birthday, user_location, uid, pic_square, sex from user where uid in (select uid2 from friend where uid1=me()) order by name";

EDIT Вы пытались сделать это с помощью вызова API Graph? Я считаю, что ту же информацию можно получить через:

https://graph.facebook.com/<fb_id>?fields=birthday,location,bio&access_token=<user_access_token>

Если вы не хотите использовать графический вызов, вы пытались использовать день рождения, местоположение и биографию в вызове FQL, возможно, они изменили имена столбцов?

...