Сессия приложения все еще существует после выхода из Facebook - PullRequest
1 голос
/ 24 января 2011

Я новичок в Facebook API и уже ищу ЛОТ, чтобы решить эту проблему, но мне не удается найти его. Браузер все еще получает файлы cookie последнего сеанса даже после того, как пользователь вышел из Facebook.

Вот как это делается: 1. Пользователь вошел в Facebook. 2. Откройте приложение. 3. Выйти из Facebook. 3. Откройте приложение (не вошло) и приложение загрузится с ошибкой

Сообщение: file_get_contents (https://graph.facebook.com/me/friends?access_token=157847364248123|2.pqWqIaCD8BKobvG_kJy9sA__.3600.1295859600-100001714363073|QfoJpTH-slOry2K1FepeyW8z5f8) [function.file-get-contents]: не удалось открыть поток: ошибка HTTP-запроса! HTTP / 1.0 400 Bad Request

Я думаю, что мне нужно очистить куки, когда пользователь поставил галочку на выходе из Facebook, но я не знаю, как это сделать в PHP SDK. Пожалуйста помоги. Спасибо!

Ответы [ 2 ]

1 голос
/ 27 января 2011

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

Но я решил свою проблему, просто добавив эти две строки кода в мою проверку сеанса:

$uid = $facebook->getUser();
$me = $facebook->api('/me');

Если проверка не пройдена, страница будет перенаправлена ​​на страницу входа в Facebook.Вот как выглядит мой код:

$facebook = new Facebook(array(
'appId'  => 'XXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXX',
'cookie' => true,
));

$session = $facebook->getSession();
$me = NULL;

if ($session)
{
    try
    {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

         /// OTHER PROCESS

        $this->load->view('app_page', $data);
    }
    catch (FacebookApiException $e)
    {
        error_log($e);
        $this->output->set_header("Location: http://www.facebook.com, TRUE, 302");
    }
}
else
{
    /// GO TO PERMISSION REQUEST
}
0 голосов
/ 24 января 2011

Это может быть ранее решено здесь: Как выйти из системы, используя Facebook Connect в PHP и Zend?

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