无法使用FB PHP SDK注销Facebook

时间:2012-06-22 06:49:30

标签: php facebook facebook-graph-api facebook-php-sdk

我正在使用FB PHP SDK来获取用户的FB访问令牌等。

在我完成所有信息后,我正在尝试注销用户,但它不起作用。出于调试目的,我这样做:

$facebook = new Facebook(array(
        'appId' => FB_APP_ID,
        'secret' => FB_SECRET
    ));
$params = array( 'next' => site_url('welcome/logout') );
$link = $facebook->getLogoutUrl($params); // $params is optional. 
echo $link;

这给了我一个这样的链接:

https://www.facebook.com/logout.php?next=http%3A%2F%2Fexample.com%2Fwelcome%2Flogout&access_token=xxxxxxxx

如果我将浏览器指向该URL,我会被重定向回我的回调网址,但如果我去Facebook.com,我会立即登录。

我做错了什么?

我尝试使用JS SDK,但这不起作用,因为其他一切都在服务器端完成(使用PHP SDK)。因此,当我使用JS SDK调用FB.logout()时,它会显示Logout called without access token

修改

我想在继续进行之前,有人可以证实这一点: 当我按照注销URL时,它是否实际上将我从Facebook注销,或者只是结束我的应用和用户之间的会话?

如果是这样,有没有办法从Facebook完全注销用户? (我猜不是。)

1 个答案:

答案 0 :(得分:1)

RE:使用JS SDK,您可以同时使用JS SDK和PHP SDK,现在可以互换(并且已经持续了大约一年)。所以,如果JS方法更适合你,我建议你试试。

RE“编辑”:是的,它完全让你退出Facebook。

现在开始功能问题。你想要的场景发生在开发过程中,但我从来没有指出原因。我认为这与存储在错误域中的cookie有关(facebook存储它认为是基本域的内容,如果你使用基本域,或者在同一个基域上有两个应用程序,它会在捻)。

清除Cookie将其排序。然后确保你不在Facebook的设置中操纵域名,并且希望不再出现。 (我希望因为我从来没有完全指出触发器,但是一旦开发完成,我从来没有遇到过稳定的应用程序。)