在Facebook Connect上处理用户注销

时间:2010-02-21 01:06:01

标签: php facebook

我的网络应用程序使用Facebook连接时出现错误,当用户打开我的网络应用程序并打开Facebook.com并退出Facebook.com时,就会发生错误。由于我的应用程序和Facebook Connect库不知道会话不再有效,当它尝试使用需要有效会话的某些Facebook Connect功能时,我收到“FacebookRestClientException”,消息“会话密钥无效或不再有效”。 “只是想知道为PHP应用程序处理这个案例的最佳做法是什么。

从谷歌搜索我发现有一个JS功能可以ping Facebook服务器以查看用户是否已登录,但我需要一个服务器端解决方案。

2 个答案:

答案 0 :(得分:1)

使用:

$fb_user=$facebook->get_loggedin_user();

这将告诉您登录用户的facebook_uid,如果未登录则返回false。

示例:

$fb_user=$facebook->get_loggedin_user();

if($fb_user)
{
    try{
        $setstatus = $facebook->api_client->users_setStatus(
            $status,
            $facebook_uid
            );
        echo 'status has been updated';
    }catch (Exception $e) {
        if($e->getCode() === 102)
        {
           // user is not logged in
           echo 'you must log in to update your status';
        }
        log_error($e->getMessage()); // log your error so you can fix it if you need to
    }
}else{
    echo 'you must log in';
}

答案 1 :(得分:0)

由于我在项目中使用CodeIgniter,因此我使用this library进行Facebook Connect。我只是按照Facebook的示例代码。然后,我只需关注flow herea guide here。注销时,我也会从Facebook注销,否则我的应用程序会重新检测到Facebook会话,并且用户重新登录。