2012-02-14 123 views
1

我对Facebook SDK和API非常熟悉,但我仍然发现自己遇到了很多麻烦。最重要的是,速度!什么是检查用户是否登录的最有效的方法?

每次执行'api'调用时,都需要一秒或两秒的时间才能返回响应。因此,我想知道检测用户是否通过Facebook登录的最有效和最快的方法是。我目前正在使用:

 // Get the User ID of the facebook user 
     $facebook_user_id = $this->facebook->getUser(); 

     // If a facebook user exists, then try to get their information 
     if($facebook_user_id){ 
      try{ 
       // Get the facebook users details 
       $facebook_user_name = $this->facebook->api('/me','GET'); 
       $this->facebook_logged_in = $facebook_user_id; 
       return $this->unique_id = $this->facebook_logged_in; 
      }catch(FacebookApiException $e){ 
       error_log($e); 
       return false; 
      } 
     }else{ 
      return false; 
     } 

此作品在一定程度上却是非常缓慢。我从字面上想知道用户是否登录并且他们的会话有效。有没有另外一种方法可以做到这一点?为什么这么慢?

回答

1

在最重要的是Facebook的PHP的例子,他们倾向于使用$uid = $facebook->getUser();看到 http://developers.facebook.com/docs/reference/php/facebook-getUser/

然后他们检查$ uid是0,则没有登录。如果不是0,那么你有自己的Facebook用户ID。

看起来像你打电话/me命令另外,当你真的不需要。为了更快地调用/ me,请指定fields=Comma,List,Of,Fields,You,Need以便查询可以更快地运行。但如上所述,只需获取登录状态,请在$ uid中检查0。

+0

这是我想要做的,因为它更快,但是,此方法不会测试当前会话,因此它可能会返回true,即使它实际上是false。我愚蠢地认为不提供字段会更快,因为查询会更小!光滑! – 2012-02-14 17:50:39

相关问题