Невозможно получить активную сессию из Facebook - PullRequest
0 голосов
/ 03 марта 2011

Я снова и снова получаю URL входа в систему из следующего кода.

    $this->fb = new Facebook(array(
        'appId' => $this->CI->config->item('facebook_app_id'),
        'secret' => $this->CI->config->item('facebook_secret'),
        'cookie' => true,
    ));

    if (!$this->fb->getSession()){

        echo $this->fb->getLoginUrl();
    }

Когда я печатаю объект fb, он показывает действительные ключи API и секретный ключ.

Я пытался после очисткипеченье от Firefox.Я также попытался выйти из системы, а затем снова войти в нее с учетной записи Facebook в следующей вкладке Firefox.Но результат один и тот же.

Над кодом всегда генерируется URL-адрес входа.

Еще одна вещь, которую я заметил, пользователь просто авторизуется и возвращается.Сообщение об утверждении приложения отсутствует / отображается экран.Есть ли проблема в настройках моего приложения на фейсбуке?

Может кто-нибудь подсказать мне, что я делаю неправильно и как это можно исправить.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 03 марта 2011

Мне нравится использовать JS SDK вместе с PHP SDK для получения дополнительной функциональности.

window.fbAsyncInit = function() {
    FB.init({
      appId   : '<?php echo $this->appId ?>',
      session : <?php echo json_encode($this->fb->getSession()); ?>, // don't refetch the session when PHP already has it
      status  : true, // check login status
      cookie  : true, // enable cookies to allow the server to access the session
      xfbml   : true // parse XFBML
    });

(function() {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/es_ES/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
  }());

Затем назначьте эту функцию любой ссылке или кнопке, для которых вы хотите открыть диалог входа в систему и разрешения (я использую jQuery и ссылку с классом .fbConnect для примера):

$(".fbConnect").click(function() {
          FB.login(function(response) {
            window.location.reload();
          }, {perms: 'user_photos,user_photo_video_tags,email,publish_stream'});
        });

Обратите внимание, что разрешения указаны в объекте perms. Когда он перезагрузится, сессия должна быть доступна для вашего PHP SDK.

Также убедитесь, что вы работаете с тем же URL-адресом, который вы указали в конфигурации вашего приложения, иначе он не будет работать.

0 голосов
/ 03 марта 2011

Вы получите действительный сеанс, только если учетная запись пользователя позволяет вашему приложению подключаться.

Вы это уже сделали?Самый простой способ - использовать кнопку входа , предоставленную Facebook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...