Facebook PHP SDK - проблема выхода - PullRequest
3 голосов
/ 24 февраля 2012

Я использую FB PHP SDK вместе с Code Igniter 2. Framework.

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

Моя проблема в том, что после входа в систему с помощью FBстраница показывает ссылку выхода из системы, которая при щелчке должна выходить из системы (и, следовательно, отображать ссылку для входа снова), НО она не работает.

У меня есть набор параметров, чтобы перевести эту страницу на определенную страницу,и это работает.Просто по какой-то причине «сессия» FB остается, и пользователь остается в системе с FB.

Есть идеи?

мой код в контроллере:

// Facebook Connect
    $fb_config = array(
        'appId'  => 'xxx',
        'secret' => 'xxx'   
    );

    $this->load->library('facebook', $fb_config);

    $user = $this->facebook->getUser();

    if ($user) {
        try {
            $data['user_profile'] = $this->facebook->api('/me');
        } catch (FacebookApiException $e) {
            $user = null;
        }
    }

    if ($user) {
        $params = array('next' => 'http://localhost/game/index.php/game/login');
        $data['logout_url'] = $this->facebook->getLogoutUrl($params);
    } else {
        $params = array('scope' => 'email, publish_stream, publish_actions', 'display' => 'popup');
        $data['login_url'] = $this->facebook->getLoginUrl($params);
    }

Последний маленький вопрос - я должен даже использовать PHP SDK, или я должен использовать Javascript SDK?Я не могу найти информацию о том, какая из них лучше всего подходит для любой работы ?!Confused.com

Ответы [ 3 ]

3 голосов
/ 24 февраля 2012

Должен ли я использовать PHP SDK или Javascript SDK?

Если ваше приложение может быть создано с помощью JavaScript SDK вместо PHP SDK, то сделайте это. Сохраните циклы процессора вашего сервера для чего-то другого. Это также позволяет вам выполнять вход в систему асинхронно, что может быть приятно.

Сложные приложения обычно используют JavaScript SDK и PHP SDK - в этом случае вход в систему часто обрабатывается на стороне Javascript (PHP SDK автоматически определяет, вошел ли пользователь в систему с помощью JavaScript).

1 голос
/ 24 февраля 2012

Моя проблема в том, что после входа в систему с помощью FB на странице отображается ссылка выхода из системы, которая при нажатии должна выйти из системы (и, следовательно, показать ссылка для входа снова) НО это не работает.

Эта причина на вашем сайте не может очистить сессию fb. У меня такая же проблема при использовании Facebook API в рамках CakePHP. И ... я пытаюсь очистить сеанс, когда пользователь выходит из системы (мне это не нравится).
Я отлаживаю и вижу, что при успешном входе в учетную запись Facebook $this->facebook->user() не равно NULL и не выдает исключения.

0 голосов
/ 08 июля 2012

Для работы ссылки выхода необходимо добавить маркер активного доступа пользователя к ссылке выхода из системы.

см. https://developers.facebook.com/docs/reference/php/facebook-getLogoutUrl/

пример:

if ($user) {
  $params = array (
  access_token => ''.$access_token.'',
  );
  $logoutUrl = $facebook->getLogoutUrl($params);
} else {
$params = array(
  scope => 'read_stream,publish_stream,publish_actions,read_friendlists',
  //redirect_uri => $url
  );
  $loginUrl = $facebook->getLoginUrl($params);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...