2013-04-15 1 views
0

У меня есть 2 вкладки, открытые в Firefox, один - мой сайт, а другой - Facebook. Без одобрения приложения я получаю ссылку для входа в систему, я нажимаю на эту кнопку, после чего мне предлагается запустить приложение, которое я делаю.Не удается выйти на моем сайте при использовании getLogoutUrl()

Теперь я получил на экране URL выхода, предоставленный getLogoutUrl(), - когда я нажимаю на него, он перенаправляет обратно на мой сайт, который мне доволен, однако он по-прежнему классифицирует меня как зарегистрированный. Если я обновляю другой вкладка с Facebook на меня теперь вышла из системы. Кажется, на сеансе есть похмелье?

<?php 
require_once("fb/facebook.php"); 

$config = array(); 
$config['appId'] = '...'; 
$config['secret'] = '...'; 
$config['fileUpload'] = false; // optional 

$facebook = new Facebook($config); 
$user_id = $facebook->getUser(); 

if($user_id) { 
    //Got an ID - Facebook says we're logged in 
    try { 

     $user_profile = $facebook->api('/me','GET'); 
     echo "<img src=\"http://graph.facebook.com/".$user_profile['username']."/picture\"><a href=\"".$user_profile['link']."\">" . $user_profile['name']."</a>"; 
     $logout_url = $facebook->getLogoutUrl(); 
     echo "<a href=\"" . $logout_url . "\">Logout</a><br><br><br>"; 

    } 
    catch(FacebookApiException $e) { 
     $login_url = $facebook->getLoginUrl(); 
     echo 'Please <a href="' . $login_url . '">login.</a>'; 
     error_log($e->getType()); 
     error_log($e->getMessage()); 
    } 
} 
else { 
    // Not logged in - give URL to login 
    $login_url = $facebook->getLoginUrl(); 
    echo 'Please <a href="' . $login_url . '">login.</a>'; 
} 
?> 

ответ

0

Необходимо уничтожить сеанс.

$config = array(); 
$config['appId'] = 'xxxx'; 
$config['secret'] = 'xxxxx'; 

$facebook = new Facebook($config); 

if(isset($_GET['act']) && $_GET['act'] == "logout") { 
    $facebook->destroySession(); 
} 


$user = $facebook->getUser(); 
echo $user; 
if ($user) { 

    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>'; 
    $user = null; 
    } 
    echo "<pre>"; 
    print_r($user_profile); 
    echo "</pre>"; 
    $logout = $facebook->getLogoutUrl(); 

    //echo $logout; 

    echo "<a href='test.php?act=logout'>Logout</a>"; 


} else { 

    $login = $facebook->getLoginUrl(array("scope"=>"email","display"=>"popup","redirect_uri"=>"http://domain.com/test.php")); 

    echo "<a href='".$login."'>Login</a>"; 

}