2010-12-03 7 views
1

함수 파일에있는 함수를 통해 페이지에 페이스 북을 설정하려고했습니다. 그러나 여러 배열을 반환하려면 모든 정보를 얻을 수 있습니다. 여기페이스 북의 API 함수 내

내가 그것을하고있어 방법은 다음과 같습니다

functions.php :

require("../functions.php"); 
$fb = fb_setup('************','*****************************'); 
echo $fb['logoutUrl']; 
//but I also want to get the $me info 

내가뿐만 아니라 $ 나 정보를 얻고 싶은

require 'src/facebook.php'; 

function fb_setup($app_id, $app_secret){ 
$facebook = new Facebook(array(
    'appId' => $app_id, 
    'secret' => $app_secret, 
    'cookie' => true, 
)); 
$session = $facebook->getSession(); 
$me = null; 
// Session based API call. 
if ($session) { 
    try { 
    $uid = $facebook->getUser(); 
    $me = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    } 
} 
// login or logout url will be needed depending on current user state. 
if ($me) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 
// This call will always work since we are fetching public data. 
$fb = array(
      "logoutUrl" => $logoutUrl, 
      "loginUrl" => $loginUrl 
      ); 

return $fb; 
return $me; 
} 

test.php.

감사합니다.

답변

3
return array('fb' =>$fb, 'me' => $me); 


echo $fb['fb']['logoutUrl']; 
echo $fb['me']['name'];** 

이 내가 class으로 리팩토링 권하고 싶습니다 있지만, 다차원 배열을 사용합니다.

class FacebookController 
{ 
    private $facebook; 
    public function __construct($app_id, $app_secret) 
    { 
     $this->facebook = new Facebook(array(
      'appId' => $app_id, 
      'secret' => $app_secret, 
      'cookie' => true, 
     )); 
    } 

    public function getMe() 
    { 
     if ($this->isLoggedIn) 
     { 
      // Session based API call. 
      if ($session) 
      { 
       try 
       { 
        return $this->facebook->api('/me'); 
       } 
       catch (FacebookApiException $e) 
       { 
        error_log($e); 
        return false; 
       } 
      } 
     } 
    } 

    public function getUrl() 
    { 
     if($this->isLoggedIn) 
     { 
      return $this->facebook->getLogoutUrl(); 
     } 
     else 
     { 
      return $this->facebook->getLoginUrl(); 
     } 
    } 

    private function isLoggedIn() 
    { 
     return $facebook->getSession(); 
    } 
} 



$FacebookController = new FacebookController(APPID, SECRET); 
$me = $FacebookController->getMe(); 
$url = $FacebookController->getUrl(); 
+0

감사합니다. 잘 작동합니다. 그런데 어떻게 내가 수업에 참여하게 될까? :) – ryryan

+0

아이디어를 얻기 위해 제 편집을보세요. – Gazler

+0

당신이 그것에 대해 생각할 때 꽤 간단 해 보입니다. 고마워요! 정말 도움이되었습니다! – ryryan

2
$returnArray = array(); 
$returnArray['fb'] = $fb; 
$returnArray['me'] = $me; 
return $returnArray;