如何设置与Facebook的持久连接

时间:2014-03-06 09:39:27

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

我在我的网站上登录了Facebook(API PHP)。当用户点击“与Facebook连接”(并且一切正常)时,我给他一个会话,在我的网站上登录他... 但是,如果用户关闭了他的浏览器,则会话被破坏...
所以,我的问题是,怎么做,做一个持久的连接......

这是我的代码:

if(!$member->isLoggedIn()){
    //set Facebook
    $fb_s = Zend_Registry::get('config');
    $config = array(
      'appId' => $fb_s->FACEBOOK->appId,
      'secret' => $fb_s->FACEBOOK->secret
    );
    $facebook = new Facebook($config);
    $user = $facebook->getUser();

    //not logged in on website, but logged in on FB
    if($request->getControllerName() != "login"){
     =========> $user is empty ....
      if($user){
        try{
          $user_profile = $facebook->api('/me');
          $membres = new Membre();
          if(!$membre = $membres->getMemberByFB($user_profile['id'])){
            // Need to be re logged in";
            if($a = App_Frontend_Login::LogMeFB($membre) == 1){
              $this->_redirect('/');
            }
          }
        }catch(FacebookApiException $e){
          error_log($e);
          $user = null;
        }
      }
    }

感谢您的帮助(提前)......

1 个答案:

答案 0 :(得分:0)

如果您想在php会话结束时登录用户但是在Facebook上登录,则必须使用javascript facebook api检查客户端的用户状态。

如果您的应用已经获得授权,如果您不想强迫用户点击“与Facebook连接”,那就是“记住我”选项的方式。