File: /home/httpd/html/baretube.com.new/includes/facebook/sdk/FacebookAdapter.class.php
<?php
class FacebookAdapter {
/**
* @var Facebook
*/
protected static $_core = null;
/**
* Access Token
* @var string
*/
protected $_access_token = '';
/**
* @param string $access_token
*/
public function __construct()
{
if (isset($_SESSION['fb_access_token'])) {
$this->_access_token = $_SESSION['fb_access_token'];
}
}
/**
* Tworzy obiekty wymanage do komunikacji z FB
*/
protected static function _loadCore()
{
if (is_null(self::$_core)) {
self::$_core = new Facebook(array(
'appId' => $fb_appid,
'secret' => $fb_appsecret,
'cookie' => true,
'fileUpload'=> true
));
}
}
public static function setAccessToken($access_token)
{
self::_loadCore();
$token_data = explode("&", $access_token);
$original_access_token = $access_token;
$access_token = "";
$expires = time();
foreach ($token_data as $data) {
$data = explode("=", $data);
if ($data[0] == "access_token") {
$access_token = $data[1];
} else if ($data[0] == "expires") {
$expires += $data[1];
}
}
$_SESSION['fb_access_token'] = $access_token;
setcookie('fb_access_token', $original_access_token, $expires, '/', $_SERVER['HTTP_HOST']);
}
/**
* Zwraca tablicę z danymi zalogowanego użytkownika
*
* @return array|null
*/
public function getLoggedUser()
{
self::_loadCore();
try {
return self::$_core->api('/me', 'get', array(
'access_token' => $this->_access_token
));
} catch (FacebookApiException $e) {
return null;
}
}
/**
* OVERRIDE
*
* @return array
*/
public function getSignedRequest()
{
self::_loadCore();
if (!isset($_REQUEST['signed_request'])) {
return null;
}
if (count(explode(".", $_REQUEST['signed_request'])) < 2) {
return null;
}
return self::$_core->getSignedRequest();
}
}