我正在使用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完全注销用户? (我猜不是。)
答案 0 :(得分:1)
RE:使用JS SDK,您可以同时使用JS SDK和PHP SDK,现在可以互换(并且已经持续了大约一年)。所以,如果JS方法更适合你,我建议你试试。
RE“编辑”:是的,它完全让你退出Facebook。
现在开始功能问题。你想要的场景发生在开发过程中,但我从来没有指出原因。我认为这与存储在错误域中的cookie有关(facebook存储它认为是基本域的内容,如果你使用基本域,或者在同一个基域上有两个应用程序,它会在捻)。
清除Cookie将其排序。然后确保你不在Facebook的设置中操纵域名,并且希望不再出现。 (我希望因为我从来没有完全指出触发器,但是一旦开发完成,我从来没有遇到过稳定的应用程序。)