2012-02-14 128 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

相關問題