Получение группы пользователей из facebook с помощью facebook api

Я хочу получить группы пользователей и хочу их перечислить, но я не могу получить группы из Facebook, хотя я могу это сделать.

*Successful Login
*fetch friend list 
*i have also allowed the permission user_groups for fetching user groups

здесь я делаю так для получения группы пользователей

AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
mAsyncRunner.request("me/groups", params,
                    new GroupsRequestListener());

public class GroupsRequestListener extends BaseRequestListener {

    @Override
    public void onComplete(final String response, final Object state) {
        dialog.cancel();
        Log.v("response", response);
        Intent myIntent = new Intent(getApplicationContext(),
                GroupsList.class);
        myIntent.putExtra("API_RESPONSE", response);
        startActivity(myIntent);
    }

    public void onFacebookError(FacebookError error) {
        dialog.cancel();

        Toast.makeText(getApplicationContext(),
                "Facebook Error: " + error.getMessage(), Toast.LENGTH_SHORT)
                .show();
    }

}

Но я получил ответ, что-то вроде этого в журнале

06-15 07:43:19.563: V/response(645): {"error":{"message":"(#100) Unknown fields:    location,birthday","type":"OAuthException","code":100}}

Параметры «я/друзья» подходят для получения списка друзей. Подходит ли параметр "me/groups" для получения группы пользователей?


person Krishna Shrestha    schedule 15.06.2012    source источник


Ответы (2)


Спасибо @Кристоф Эберхардт. Я получил решение с вашей помощью. то, что я делал, было ошибкой, это изношенный запрос parameters. параметры должны быть

Bundle params = new Bundle();
params.putString("fields", "name");

после установки параметров запроса приведенный выше код работает отлично. Полное решение для получения группы пользователей:

//onCreate
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
Bundle params = new Bundle();
params.putString("fields", "name");

mAsyncRunner.request("me/groups", params,
                new GroupsRequestListener());

//then

public class GroupsRequestListener extends BaseRequestListener {

@Override
public void onComplete(final String response, final Object state) {
    dialog.cancel();
    Log.v("response", response);
    Intent myIntent = new Intent(getApplicationContext(),
            GroupsList.class);
    myIntent.putExtra("API_RESPONSE", response);
    startActivity(myIntent);
    }

public void onFacebookError(FacebookError error) {
    dialog.cancel();

    Toast.makeText(getApplicationContext(),
            "Facebook Error: " + error.getMessage(), Toast.LENGTH_SHORT)
            .show();
    }

}
person Krishna Shrestha    schedule 15.06.2012

Ошибка указывает на ошибку параметра запроса на вашей стороне. При запросе друзей вы можете явно запросить день рождения и местонахождение вашего друга. Вероятно, группы не имеют этих атрибутов.

Проверьте параметры запроса, и все должно быть в порядке.

person Christoph Eberhardt    schedule 15.06.2012