Проблема с PHP php SDK для GetLogoutUrl ()

Когда я хочу выйти из системы с моего сайта, я использую:

$logoutUrl = $facebook->getLogoutUrl(array('next' => 'logout.php')); 

И $logoutUrl отображает правильную ссылку, однако она не перенаправляет меня на указанный в следующем URL- $logoutUrl . Он перенаправляет меня на страницу, которая начала выход из системы.

Похоже, что в Интернете очень много статей, но все они используют одни и те же методы, и для многих людей они не работают. Как правильно выйти из учетной записи пользователя на facebook, а затем выполнить мой обычный скрипт выхода?

EDIT: Это сработало, но по-прежнему требуется какой-то выход из системы, не основанный на javascriptSDK.

 <a id="logout" href="logout.php" onclick="FB.logout(function(response) { window.location = 'logout.php' }); return false;" title="<?php echo $lang['logout']; ?>"><?php echo $lang['logout']; ?></a> 

Вы должны использовать абсолютные URL-адреса. например

 // (or https://) $here = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $next = preg_replace('~#.*$~s', '', $here); $next = preg_replace('~\?.*$~s', '', $next); $next = preg_replace('~/[^/]*$~s', '/logout.php', $next); $logoutUrl = $facebook->getLogoutUrl(array('next' => $next)); 

Или просто:

 $logoutUrl = $facebook->getLogoutUrl(array('next' => 'http://...../logout.php')); 

Я знаю, что это устарело, но причина, по которой getLogoutUrl () не перенаправляется на ваш «следующий» URL-адрес, заключается в том, что он не регистрирует пользователя и не перенаправляет его вообще. Он просто дает вам правильный URL-адрес, который вам нужно использовать для выхода из системы и перенаправления (например, заголовок («Location: $ logoutUrl»)). После перенаправления пользователь выйдет из системы, и ваш «следующий» URL-адрес будет вызван.

Примечание. Перед вызовом getLogoutUrl () не удаляйте переменные сеанса Facebook (например, destroySession). Если вы это сделаете, токен доступа, включенный в возвращаемый url, будет равен 0 вместо вашего токена доступа.

Документация не слишком понятна этому, но функция очень правильно названа.