2011-12-26 3 views
0

Мне нелегко заставить это работать. Я использую следующие для создания выхода из системы URL:facebook php-sdk не выходит из системы

$logout = "https://www.facebook.com/logout.php?next=" . urlencode('http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF']) . "&access_token=" . $facebook->getAccessToken(); 

, который генерирует правильный (работал с последней версией) URL:

https://www.facebook.com/logout.php?next=http%3A%2F%2F...&access_token=AA....ZD 

Однако это не на самом деле входа пользователя вне. Я пробовал использовать

$facebook->getLogoutUrl(array('next' => 'myurl')) 

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

ответ

2

Если вы запрашиваете разрешение offline_access при использовании PHP SDK для Facebook (а иногда и без него), это делает работу по отключению по умолчанию не очень хорошей. Чтобы исправить это, следуя работал для меня:

 
//change your logout url to 
$logoutUrl = $facebook->getLogoutUrl(array('next' => ($fbconfig['baseurl'].'logout.php'))); 

//on logout page 
setcookie('fbs_'.$facebook->getAppId(), '', time()-100, '/', 'domain.com'); 
session_destroy(); 
header('Location: /'); 

Надеется, что это помогает

+0

спасибо, что sudhir setcookie на странице выхода из системы работал просто потрясающе. Это единственное исправление, которое работало для меня для URL-адреса выхода на facebook. – peter

0

Это может быть потому, что PHP сессия и куки сессии остаются нетронутыми. Я написал a short article, который пытается демистифицировать вход/выход FB в.

+0

Не очень легко найти, не так ли? – Sven

3

В facebook php sdk используются сеансы php для токенов, которые позволяют вам войти в систему. Чтобы очистить его, вы можете просто уничтожить сеанс.

index.php:

<a href="logout.php">Log out</a> 

logout.php

$facebook = new Facebook(array('appId' => FB_APP_ID, 'secret' => FB_APP_SECRET, 'cookie' => true)); 
$facebook->destroySession(); 
header('location: index.php'); 

FB_APP_ID и FB_SECRET моя информация конкретных приложений. Замените свое.