Как проверить, зарегистрирован ли пользователь с новым Facebook php API

Я перемещаю свое старое приложение FB в новый график API с помощью API PHP

У меня есть две страницы: общедоступные (которые не требуют никакого пользовательского входа в систему) и частные (которые делают),

Таким образом, код каждой php страницы в моем приложении работает следующим образом:

if (this_page_requires_user_login){
      $facebook = new Facebook(...) ;
      $session = $facebook->getSession ;
      if (!$session){
              $url =$facebook.getLoginUrl(array(next => current_page );
              echo "" ;

}
// the rest of the code continues here

Теперь как Вы видите, этот способ работать вперед каждая страница к URL входа в систему и в то время как это работает, это также медленно и добавляет &session = {bla} строка к очень единственному URL.

Мне нужен способ проверить, где пользователь уже зарегистрирован, прежде чем я перенаправлю его к loginpage. Но я не могу найти такой метод в php API. Что лучший способ состоит в том, чтобы сделать это?

Править

Это, казалось, добивалось цели

if ($session) {
  try {
    $me = $facebook->api('/me');
    if ($me) {
       // here comes your code for user who is logged in
    }
  } catch (FacebookApiException $e) {
    login()
  }
}else{
 login()
}

function login(){

  $url =$facebook.getLoginUrl(array(next => current_page );


      echo "" ;
}

17
задан Kara 18 February 2014 в 20:08
поделиться

1 ответ

Если я правильно понял ваш код, только если сессия не возвращается, вы делаете перенаправление? Согласно комментариям в примере Facebook, даже если вы получаете сессию обратно, вы не можете считать, что она все еще действительна. Только попробовав вызов API, который требует входа в систему, вы сможете знать наверняка. Это лучший способ, который я видел, чтобы надежно определить статус входа/выхода.

if ($session) {
  try {
    $me = $facebook->api('/me');
    if ($me) {
      //User is logged in
    }
  } catch (FacebookApiException $e) {
    //User is not logged in
  }
}
19
ответ дан 30 November 2019 в 13:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: