Facebook getLogoutUrl()无法按预期工作

时间:2013-02-20 14:14:40

标签: php facebook-php-sdk

这是我的代码:

    <?php
require_once("facebook-php-sdk/src/facebook.php");
    define('YOUR_APP_ID', 'xxxxxxxxxxxxx');
    define('YOUR_APP_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxxx');
    $facebook = new Facebook(array(
     'appId' => YOUR_APP_ID,
     'secret' => YOUR_APP_SECRET,
    ));
    $userId = $facebook->getUser();
    if($userId){
         $userInfo = $facebook->api('/' + $userId);
         $fbid = $userInfo['id'];
         $params = array();
         echo '<a href='.$facebook->getLogoutUrl($params).'><div class="text-facebook"><img style="vertical-align:middle;" src="/img/fbicon.png">Logout</div></a>';                         
               }
                else{
                  $permission = array('scope' => 'email');
                  echo '<a href='.$facebook->getLoginUrl($permission).'><div class="text-facebook"><img style="vertical-align:middle;" src="/img/fbicon.png">Login with Facebook</div></a>';
                     }
?>

登录工作完美,但是当我点击退出按钮时,它会将我从facebook.com中导出,但它会保留在我的网站上,这与我想要的完全相反。我想要链接从我的网站删除所有Facebook信息,但让用户登录到Facebook。

我不知道我是否正确解释了我需要的东西,但是如果有人问的话,我会清理一下。

2 个答案:

答案 0 :(得分:1)

如果您希望用户从您的网站注销但仍然登录到Facebook,那么答案很简单:

请勿使用facebook-&gt; getlogouturl()

如果在成功登录后,您将变量设置为true,并使用该变量允许您仅授予登录用户的操作,那么您需要执行的所有注销按钮都将该变量设置为false。

答案 1 :(得分:0)

这里的问题不是退出链接(它正常工作,因为它会让你退出Facebook),但这是你的网站检查你是否仍然登录Facebook的方式

您使用的Facebook API仅处理Facebook的一面。登录链接将登录到Facebook,登出链接将使您退出Facebook。它不会直接影响您的网站。

您需要了解您的网站如何决定您是否仍然登录Facebook,并从那里开始。