开发者

Handling user logout on Facebook Connect

开发者 https://www.devze.com 2022-12-20 23:24 出处:网络
I am facing an error with my web app that uses Facebook connect t开发者_开发问答hat occurs when the user has both my web app open and Facebook.com open and logs out of Facebook.com. Since my app and t

I am facing an error with my web app that uses Facebook connect t开发者_开发问答hat occurs when the user has both my web app open and Facebook.com open and logs out of Facebook.com. Since my app and the Facebook Connect library is unaware that the session is no longer valid, when it tries to user certain Facebook Connect functions that require a valid session, I get a 'FacebookRestClientException' with message 'Session key invalid or no longer valid.' Just wondering what the best practice is for handling this case for a php app.

From Googling I found that there's a JS function that pings the Facebook server to see if a user is logged in but I need a server side solution.


use:

$fb_user=$facebook->get_loggedin_user();

this will tell you the facebook_uid of the logged in user or return false if not logged in.

example:

$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';
}


Since I use CodeIgniter in my project, I use this library to do Facebook Connect. I just follow the example code from Facebook. Then I just follow the flow here and a guide here. When logout, I also do logout from Facebook, otherwise Facebook session can re-detected by my application and the user logged back in.

0

精彩评论

暂无评论...
验证码 换一张
取 消