Facebook注销不使用offline_access

时间:2012-01-25 05:52:17

标签: facebook

我正在尝试在我的网站上实施Facebook登录和退出。 我正在使用Facebook PHP SDK。

我使用的代码如下:

登录

    $facebook = new Facebook(array('appId'  => APP_ID,
                           'secret' => APP_SECRET
                           ));

    $param = array();
    $param["scope"] = array("email","offline_access","publish_stream");

    $loginUrl = $facebook->getLoginUrl($param);

注销

    $logoutUrl = $facebook->getLogoutUrl();

问题是注销网址无法注销Facebook用户。

当我从范围参数中删除“offline_access”时,注销Url正常工作。

我还在PHP SDK的example.php文件中实现了上述范围,结果是一样的。

任何人都可以提供任何帮助。

2 个答案:

答案 0 :(得分:1)

我发现了我的问题。从Facebook登录后,我调用了函数$facebook->destroySession();,然后调用函数$facebook->getLogoutUrl();

由于destroySession()功能,Facebook返回的access_token丢失,我从getLogoutUrl()功能生成的注销网址无法从Facebook注销用户。

删除destroySession()函数后,我的代码工作正常。

答案 1 :(得分:0)

我认为问题可能是您在将用户从FB中注销后没有清除会话cookie。

1) download the latest php sdk.
2) Make sure you specify the 'domain' parameter when you create the $facebook object.
3) Before you redirect the user to FB logout, clear their session with 
$facebook->setSession(null);  - alternatively, you can use FB.logout() in the javascript SDK.

更新: 当您指定appId和key时,也请将“domain”作为您的域名。

setSession的示例: example1