2012-02-14 2 views
1

Facebook SDK 및 API에 익숙하지만 여전히 문제가 많습니다. 무엇보다도, 속도!사용자가 로그인했는지 확인하는 가장 효율적인 방법은 무엇입니까?

'api'호출을 실행할 때마다 응답을 반환하기 위해 추가 2 ~ 2 분이 걸립니다. 따라서 사용자가 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

가 페이스 북의 PHP 예제의 모든 대부분의, 그들은 $uid = $facebook->getUser();http://developers.facebook.com/docs/reference/php/facebook-getUser/

참조 사용하는 경향이하고 $ UID가 다음에 로그인하지 않은 0 인 경우가 확인 후. 0이 아닌 경우 다른, 다음, 당신은 자신의 페이 스북 사용자 ID.

실제로 필요하지 않을 때 추가로 /me 명령을 사용하는 것처럼 보입니다. 또한/me 호출을 더 빠르게 수행하려면 fields=Comma,List,Of,Fields,You,Need을 지정하면 쿼리가 더 빨리 작동 할 수 있습니다. 그러나 위에 언급 한 것처럼 로그인 상태를 얻으려면 $ uid에서 0을 확인하십시오.

+0

이것은 훨씬 빠르므로이 방법을 사용하여 현재 세션을 테스트하지 않으므로 실제로는 false이지만 다시 돌아올 수 있습니다. 나는 어리석게도 질의가 더 작기 때문에 필드를 제공하지 않는 것이 더 빠를 것이라고 생각했다! 부드러운! –

관련 문제