Без токена вы можете получить доступ только к публичной информации.
Публичные данные
С Домашняя страница RestFB :
// It's also possible to create a client that can only access
// publicly-visible data - no access token required.
FacebookClient publicOnlyFacebookClient = new DefaultFacebookClient();
Если пользователь этого не делаетЗащитите его сообщения, тогда вы сможете получить доступ ко всему без токена.Но большинство пользователей защищают свои данные, и тогда вам нужен действительный токен доступа пользователя для чтения данных.
Личные данные
Когда вы говорите: «Пользователь FB уже разрешает доступ к своей информации».из моего приложения "это означает, что пользователь нажал" Разрешить приложение "в веб-браузере, и в этот момент здесь Facebook выдаст вам токен.После использования этого токена вы можете использовать RestFB:
FacebookClient facebookClient = new DefaultFacebookClient(USER_ACCESS_TOKEN);
User user = facebookClient.fetchObject("me", User.class);
out.println("User name: " + user.getName());
По умолчанию срок действия токена истекает через несколько часов.Если вы запросите разрешение offline_access
, токен будет действителен вечно (до тех пор, пока пользователь не удалит разрешение для вашего приложения в своих настройках).Вы должны сохранить этот токен в своей базе данных, чтобы иметь возможность использовать его при необходимости.
Получить токен пользователя
Вы не можете получить токен пользователя с помощью RestFB.На домашней странице RestFB вы можете прочитать:
Нецелевые задачи: [...] Предоставление механизма получения сеансовых ключей или маркеров доступа OAuth
Потому что для этого нужен браузер: пользователь должен аутентифицировать и авторизовать ваше приложение на веб-сайте Facebook (всплывающее окно, которое показывает).
То, что вы можете сделать, это иметьPHP-страница, на которой ваши пользователи должны авторизовать ваше приложение.Вы можете прочитать этот ответ stackoverflow, в котором объясняется, как использовать для этого PHP PHP SDK .
Надеюсь, это поможет!