Функция Facebook не возвращает пользователя при использовании getUser () - PullRequest
0 голосов
/ 31 декабря 2011

Я использую файлы Facebook для входа в созданное мной приложение, чтобы люди могли войти через Facebook на сайт, над которым я работаю. Я работаю в Code Igniter , и мне удалось вернуть информацию о пользователях и все. У меня это работало без проблем.

Но когда я перешел на сторону разработчика, потому что хотел проверить его локально и изменил URL-адрес сайта, у меня возникла ошибка из-за чего-то, что я не могу вспомнить, я думаю, что код ошибки был 191. Я мог ошибаться.

Затем я понял, хорошо, что это не сработало, поэтому я изменил его обратно, и теперь я не могу получить какие-либо пользовательские данные при входе в систему. Не выдается никаких ошибок. Функции из файла Facebook работают нормально, но я не могу получить информацию о пользователе снова.

У меня есть модель, которую я использую, чтобы получить информацию из логина.

class Facebook_model extends CI_Model {

function __construct() {
    parent::__construct();

    $config = array(
        'appId'  => 'XXXX',
        'secret' => 'XXXXX',
        'fileUpload' => true
    );

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

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


    $profile = null;

    if($user)
    {
        try {
            // Proceed knowing you have a logged in user who's authenticated.
            $profile = $this->facebook->api('/me?fields=id,name,link,email');
        } catch (FacebookApiException $e) {
            error_log($e);
            $user = null;

        }
    }

    $login_params = array(
        'redirect_uri' => (base_url() . 'test'),
        'scope'        => 'email'
    );

    $fb_data = array(
                    'me' => $profile,
                    'uid' => $user,
                    'loginUrl' => $this->facebook->getLoginUrl($login_params),
                    'logoutUrl' => $this->facebook->getLogoutUrl()
                );



    $this->session->set_userdata('fb_data', $fb_data);
}
}

Итак, сразу после ($user = $this->facebook->getUser();) я сделал тест и повторил $user и получил 0 . Где раньше я не сделал.

Единственное изменение, которое я сделал, было в $login_params var. Я изменил redirect_uri на localhost , который не работал по понятным причинам, а затем вернул его обратно к тому, что я сейчас отображал.

Спасибо

1 Ответ

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

getUser возвращает информацию о пользователе, только если пользователь вошел в ваше приложение / сеть (http://developers.facebook.com/docs/reference/php/facebook-getUser/)

). Таким образом, вы должны иметь дело с моделью с возможностью того, что пользователь не вошел в систему (равен 0).и покажите ему кнопку входа в систему. Кроме того, вы должны сбросить информацию о сеансе в случае, если пользователь 0.

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