facebook应用程序的注销问题

时间:2011-04-18 06:19:10

标签: php facebook

<?php
require_once 'facebook.php';

$app_id = "";
$app_key = "";
$app_secret = "";
$canvas_url = "";

$facebook = new Facebook(array(
'appId'  => $app_id,
'secret' => $app_secret,
'cookie' => true,
'domain' => 'http://www.yeospace.com/2B10030/'
));


$session = $facebook->getSession();

if (!$session) {

    try{
        $url = $facebook->getLoginUrl(array(
        'req_perms' => 'publish_stream, user_photos, read_stream, read_friendlists, offline_access, manage_pages'
        ));

        echo "<script type='text/javascript'>top.location.href = '$url';</script>";
        }
        catch(FacebookApiException $e)
        {//catch
            echo "<br/>";
            echo "Error:" . print_r($e, true);   
        }//catch
    }//end if session user 
else
{

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

        //$updated = date("l, F j, Y", strtotime($me['updated_time']));
        echo "<img src='https://graph.facebook.com/".$uid."/picture'/>". "<br />" ;
        echo "Hello " . $me['name'] . "<br /><br /><br /><br />";
        //echo "You last updated your profile on " . $updated  . "<br />" ;


}//end else user

我有这个应用程序正在注销问题。上面的代码是config.php,其中每个其他页面都包含。 “require_once'config.php'” 当我注销用户A并登录用户B时,当我再次运行应用程序时,应用程序中的数据仍然是用户A.

无论如何我可以强制清除数据然后加载新数据吗?即使认为这个config.php总是被加载,用户数据也没有被清除。 你们能告诉我如何清除它吗?我还不熟悉facebook应用程序。谢谢你!

2 个答案:

答案 0 :(得分:1)

在以下任何代码中,您都没有做过两件事:

  1. Destroying the Facebook session for the user
  2. Destroying the PHP session
  3. 这就是为什么即使您已切换用户,也要保留以前用户的状态。

答案 1 :(得分:0)

在facebook doc上,他们建议使用:

Facebook::getLogoutUrl( $params=array() )

此方法返回一个URL,当用户点击该URL时,会将其记录在Facebook会话中,然后将其重定向回您的应用程序。

您应该使用以下代码:

$params = array( 'next' => 'https://www.myapp.com/after_logout' );
$facebook->getLogoutUrl($params);

检查facebook sdk ref。 doc:https://developers.facebook.com/docs/reference/php/facebook-getLogoutUrl/