Facebook API - в функции - PullRequest
       6

Facebook API - в функции

1 голос
/ 04 декабря 2010

Я пытался настроить facebook на странице с помощью функции, которая находится в файле функций.Однако я хочу вернуть несколько массивов, чтобы получить каждый бит информации.

Вот как я это делаю:

functions.php:

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

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

Я хочу также получить информацию о $ me.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 04 декабря 2010
return array('fb' =>$fb, 'me' => $me);


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

При этом используется многомерный массив, хотя я бы рекомендовал рефакторинг в класс .

например

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();
2 голосов
/ 04 декабря 2010
$returnArray = array();
$returnArray['fb'] = $fb;
$returnArray['me'] = $me;
return $returnArray;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...