Как получить детали пользователя с помощью restfb.? - PullRequest
0 голосов
/ 20 января 2012

Я пытаюсь получить фамилию своего профиля, используя restfb.But, но каждый раз, когда имя пользователя возвращается как нулевое. У меня уже есть токен доступа и разрешения. Я думаю, что есть некоторые проблемы с передачей объекта JSon. Как я могу передать объекты json в javabean, а затем получить его?

Ответы [ 3 ]

3 голосов
/ 24 марта 2016

Это происходит, когда предоставленный токен доступа не имеет правильных разрешений для доступа к данным. Лучший способ проверить это - использовать API-интерфейс графа Facebook; отмечая версию. https://developers.facebook.com/tools/explorer/145634995501895/?method=GET&path=me&version=v2.4

FacebookClient fbClient = new DefaultFacebookClient(accessToken, Version.VERSION_2_4);
User me = fbClient.fetchObject("me", User.class, Parameter.with("fields", "email,first_name,last_name,gender"));

Примечание: Ваша функция FB.login должна содержать правильную область для полей, к которым вы хотите получить доступ.

FB.login(function(response) {

           ...

        }, {scope: 'email'});
0 голосов
/ 08 января 2014

Вот фрагмент кода

FacebookClient facebookClient = new DefaultFacebookClient("register a facebook application with required permissions, get that application token and paste here");

User user = facebookClient.fetchObject("me", User.class);

Connection<User> myFriends = facebookClient.fetchConnection("me/friends", User.class);

for(User friend:myFriends.getData())
{
    Connection<Page> myMovies = facebookClient.fetchConnection(friend.getId() + "/movies", Page.class);

    content = content + "Name: " + friend.getName();
    for(Page page:myMovies.getData())
    {
        content = content  + "\n" + "Movies: " + page.getName() + "\n";
    }
}

В этом примере вашему приложению требуется разрешение "friends_likes".

Надеюсь, это поможет.

0 голосов
/ 20 января 2012

Это работает для меня:

FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN);
User user = facebookClient.fetchObject("me", User.class);
out.println("Last name: " + user.getLastName());
...