Esempio n. 1
2
function resourcePost($api, $tools, $param)
{
    global $FBArr;
    $param["fbId"] = $tools->sql_injection_anti($_POST["data"]["id"]);
    $_SESSION["fb_{$FBArr['appId']}_access_token"] = $_POST['token'];
    $param["requestIds"] = $tools->sql_injection_anti($_POST["requestIds"]);
    include_once "../../library/Table/Request.class.php";
    $request = new Request();
    include_once LIB_PATH . 'facebook/facebook.php';
    $facebook = new Facebook($FBArr);
    $facebook->setAccessToken($_SESSION["fb_{$FBArr['appId']}_access_token"]);
    $requestData = $facebook->api(array('method' => 'fql.query', 'query' => "SELECT sender_uid FROM apprequest WHERE request_id = '{$param["requestIds"]}'"));
    $param["senderId"] = $requestData[0]["sender_uid"];
    $url = "http://me.molome.tw/game/get_fb_gameacc";
    $key = "WVdFMVpqQTBaVGtPQzAwTkRjMUxUazNN";
    $time = time();
    $sign = md5($param["fbId"] . $time . $key);
    $url = sprintf($url . "?fbid=%s&time=%s&sign=%s", $param["fbId"], $time, $sign);
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    $result = curl_exec($curl);
    $json = json_decode($result);
    curl_close($curl);
    if ($json->info[0]->name != '' and $json->info[0]->sid != '') {
        $param['join'] = -1;
    } else {
        $param['join'] = 0;
    }
    $url = "http://graph.facebook.com/" . $param['senderId'];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    $result = curl_exec($curl);
    $userData = json_decode($result);
    $api->setOutput('新增資料成功', array("sender" => $userData));
    return;
}
Esempio n. 2
0
 /**
  * @param string $logoutUrl
  */
 public function logout($logoutUrl = '')
 {
     if (empty($logoutUrl)) {
         $logoutUrl = self::$object->getLogoutUrl(array('next' => self::getRedirectUrl() . '#postJobs'));
     }
     self::$object->setAccessToken('');
     self::$object->destroySession();
     SJB_HelperFunctions::redirect($logoutUrl);
 }
 /**
  * @todo fix this BIG mess.
  */
 public static function postFacebook($message, $link = null, $impression = null)
 {
     $member = Member::currentUser();
     $postresult = false;
     $SiteConfig = SiteConfig::current_site_config();
     if ($member && $SiteConfig->FBAppID && $SiteConfig->FBSecret) {
         if ($link == null) {
             $link = Director::absoluteBaseURL();
         }
         $page = '/' . $SiteConfig->FBPageID . '/feed';
         $facebook = new Facebook(array('appId' => $SiteConfig->FBAppID, 'secret' => $SiteConfig->FBSecret));
         $token = $facebook->api('/me/accounts');
         foreach ($token['data'] as $pages) {
             if ($pages['id'] == $SiteConfig->FBPageID) {
                 $facebook->setAccessToken($pages['access_token']);
                 $verified = true;
                 break;
             }
         }
         if ($verified) {
             $data = array('message' => $message, 'link' => $link, 'picture' => $impression);
             $postresult = $facebook->api($page, 'post', $data);
         }
     }
     return $postresult;
 }
 /**
  *
  * @param array $data
  * @param array $services
  */
 public function sendToSocialMedia(array $data, array $services = array('facebook', 'twitter'))
 {
     // init output
     $ids = array('facebook' => null, 'twitter' => null);
     // Facebook
     if (in_array('facebook', $services) && $this->confirmFacebookAccess()) {
         $facebook = new Facebook(array('appId' => static::$conf->FacebookAppId, 'secret' => static::$conf->FacebookAppSecret));
         $facebook->setAccessToken(static::$conf->FacebookPageAccessToken);
         try {
             $post_id = $facebook->api("/" . static::$conf->FacebookPageId . "/feed", "post", $data);
             $ids['facebook'] = $post_id['id'];
         } catch (FacebookApiException $e) {
             SS_Log::log('Error ' . $e->getCode() . ' : ' . $e->getFile() . ' Line ' . $e->getLine() . ' : ' . $e->getMessage() . "\n" . 'BackTrace: ' . "\n" . $e->getTraceAsString(), SS_Log::ERR);
         }
     }
     // Twitter
     if (in_array('twitter', $services) && $this->confirmTwitterAccess()) {
         $connection = new tmhOAuth(array('consumer_key' => static::$conf->TwitterConsumerKey, 'consumer_secret' => static::$conf->TwitterConsumerSecret, 'user_token' => static::$conf->TwitterOAuthToken, 'user_secret' => static::$conf->TwitterOAuthSecret));
         $tweet = $data['name'] . ": " . $data['link'];
         $code = $connection->request('POST', $connection->url('1.1/statuses/update'), array('status' => $tweet));
         if ($code == 200) {
             $data = json_decode($connection->response['response']);
             $ids['twitter'] = $data->id_str;
         }
     }
     return $ids;
 }
 private function face($access_token, $dataConfig)
 {
     require_once 'php-sdk/src/facebook.php';
     $facebook = new Facebook($dataConfig);
     $facebook->setAccessToken($access_token);
     Zend_Debug::dump($user = $facebook->getUser());
     if ($user) {
         $this->view->faceUrl = $facebook->getLogoutUrl();
     } else {
         $this->view->faceUrl = $facebook->getLoginUrl();
     }
     Zend_Debug::dump($_REQUEST);
     Zend_Debug::dump($naitik = $facebook->api('/100000874886897'));
     if ($user) {
         try {
             // Proceed knowing you have a logged in user who's authenticated.
             $user_profile = $facebook->api('/me');
             print_r($user_profile);
         } catch (FacebookApiException $e) {
             error_log($e);
             $user = null;
         }
     }
     $this->view->user = $naitik;
 }
Esempio n. 6
0
function facebook_init()
{
    require 'src/facebook.php';
    global $facebook;
    $facebook = new Facebook(array('appId' => FB_KEY, 'secret' => FB_SECRET));
    if (!empty($_SESSION) && !empty($_SESSION['fb_code'])) {
        $url = "https://graph.facebook.com/oauth/access_token?";
        $params = array();
        $params[] = 'client_id=' . $facebook->getAppId();
        $params[] = 'redirect_uri=' . 'http://' . HOST . get_url('/facebook/auth/');
        $params[] = 'client_secret=' . $facebook->getApiSecret();
        $params[] = 'code=' . $_SESSION['fb_code'];
        $url .= implode('&', $params);
        $data = explode('&', get_data($url));
        foreach ($data as &$d) {
            $d = explode('=', $d);
            if ($d[0] == 'access_token') {
                $_SESSION['fb_access_token'] = $d[1];
            } elseif ($d[0] == 'expires') {
                $_SESSION['fb_at_expires'] = time() + $d[1];
            }
        }
    }
    if (array_key_exists('fb_access_token', $_SESSION)) {
        if ($_SESSION['fb_at_expires'] > time()) {
            $facebook->setAccessToken($_SESSION['fb_access_token']);
            unset($_SESSION['fb_code']);
        }
    }
}
Esempio n. 7
0
 function onNextendFacebook(&$facebook)
 {
     $config = new NextendData();
     $config->loadJson(NextendSmartSliderStorage::get(self::$_group));
     require_once dirname(__FILE__) . "/api/facebook.php";
     $facebook = new Facebook(array('appId' => $config->get('apikey', ''), 'secret' => $config->get('apisecret', '')));
     $facebook->setAccessToken($config->get('token', ''));
 }
 public function sendToFacebook($params)
 {
     // create instance
     $facebook = new Facebook(array('appId' => self::get_facebook_app_id(), 'secret' => self::get_facebook_secret()));
     $facebook->setAccessToken(self::get_facebook_access_token());
     $result = $facebook->api('/' . self::get_facebook_user_id() . '/feed/', 'post', $params);
     return $result;
 }
Esempio n. 9
0
 /**
  * Render fieldset html
  *
  * @param Varien_Data_Form_Element_Abstract $element
  * @return string
  */
 public function render(Varien_Data_Form_Element_Abstract $element)
 {
     $msg = '<div style="padding-bottom: 1em;max-width: 800px;">';
     $appId = Mage::getStoreConfig('besociable/facebook/appid');
     $appSecret = Mage::getStoreConfig('besociable/facebook/appsecret');
     $currentAccessToken = Mage::getStoreConfig('besociable/facebook/access_token');
     if ($appId != '' && $appSecret != '') {
         $facebook = new Facebook(array('appId' => $appId, 'secret' => $appSecret));
         $merge = $appId . '|' . $appSecret;
         $accessToken = $facebook->getAccessToken();
         if ($accessToken != $merge && $accessToken != $currentAccessToken) {
             Mage::getConfig()->saveConfig('besociable/facebook/access_token', $accessToken);
             $facebook->setAccessToken($accessToken);
         } else {
             $facebook->setAccessToken($currentAccessToken);
         }
         $user = $facebook->getUser();
         if ($user) {
             $loginUrl = $facebook->getLoginUrl(array('scope' => array('manage_pages', 'publish_stream')));
             $msg .= Mage::helper('sociable')->__('<span style="color: green;">You have successfully authorized with facebook.</span>');
             $msg .= Mage::helper('sociable')->__('<br>You can always <a href="%s">click here</a> to re-authorize your access to facebook again.', $loginUrl);
             $msg .= Mage::helper('sociable')->__('<br>If you want to get a list of your pages, you can simply <a href="%s">click here</a>', $this->getUrl('adminhtml/sociable/getPages'));
             $msg .= Mage::helper('sociable')->__('<br>Please <a href="%s">click here</a> to make a test post.', $this->getUrl('adminhtml/sociable/testfacebook'));
             /*
             if(!$user){
             	$loginUrl = $facebook->getLoginUrl(array('scope'=>array('manage_pages','publish_stream')));//, 'publish_actions', 'publish_stream'
             	$msg .= Mage::helper('sociable')->__('<strong style="color:red">Important: </strong>');
             	$msg .= Mage::helper('sociable')->__('You will need to <a href="%s">click here</a> to authorize your access to facebook for the first time.',$loginUrl);
             }else {
             	
             }
             */
         } else {
             $loginUrl = $facebook->getLoginUrl(array('scope' => array('manage_pages', 'publish_stream')));
             //, 'publish_actions', 'publish_stream'
             $msg .= Mage::helper('sociable')->__('<strong style="color:red">Important: </strong>');
             $msg .= Mage::helper('sociable')->__('You will need to <a href="%s">click here</a> to authorize your access to facebook for the first time.', $loginUrl);
         }
     }
     $msg .= '</div>';
     return $msg;
 }
Esempio n. 10
0
 /**
  */
 public static function fql($fql)
 {
     $fb = new Facebook(array('appId' => self::$_app_id, 'secret' => self::$_secret, 'cookie' => true));
     // Radix::dump($fb);
     $uri = sprintf('https://graph.facebook.com/oauth/access_token?client_id=%s&client_secret=%s&grant_type=client_credentials', rawurlencode(self::$_app_id), rawurlencode(self::$_secret));
     $ret = self::_curl($uri);
     if (preg_match('/access_token=(.+)/', $ret['body'], $m)) {
         $fb->setAccessToken($m[1]);
     }
     $ret = $fb->api(array('method' => 'fql.query', 'query' => $fql));
     return $ret;
 }
Esempio n. 11
0
 public function sharePost($data = false)
 {
     if (!$data) {
         $data = $this->post;
     }
     $facebook_token = SocialNetwork::get_access_token($data->uid, SocialNetwork::FACEBOOK);
     if ($facebook_token) {
         $facebook = new Facebook(array('appId' => FACEBOOK_APPID, 'secret' => FACEBOOK_SECRET, 'cookie' => true));
         $facebook->setAccessToken($facebook_token->accessToken);
         $facebook->api('/me/feed', 'post', array('message' => $data->title, 'link' => $data->url, 'caption' => $data->content, 'type' => 'link', 'picture' => $data->avatar));
     }
 }
Esempio n. 12
0
 /**
  * Find friends of logged in user and map to local friends table.
  * @param Array $config
  * @return Bool Success
  */
 public function mapFriends(array $config)
 {
     $config = $config instanceof Garp_Util_Configuration ? $config : new Garp_Util_Configuration($config);
     $config->obligate('bindingModel')->obligate('user_id')->setDefault('accessToken', $this->getAccessToken());
     if (!$config['accessToken']) {
         // Find the auth record
         $authModel = new Model_AuthFacebook();
         $authRow = $authModel->fetchRow($authModel->select()->where('user_id = ?', $config['user_id']));
         if (!$authRow || !$authRow->access_token) {
             return false;
         }
         // Use the stored access token to create a user session. Me() in the FQL ahead will contain the user's Facebook ID.
         // Note that the access token is available for a very limited time. Chances are it's not valid anymore.
         $accessToken = $authRow->access_token;
     }
     try {
         $this->_client->setAccessToken($config['accessToken']);
         // Find the friends' Facebook UIDs
         $friends = $this->_client->api(array('method' => 'fql.query', 'query' => 'SELECT uid2 FROM friend WHERE uid1 = me()'));
         // Find local user records
         $userModel = new Model_User();
         $userTable = $userModel->getName();
         $authFbModel = new Model_AuthFacebook();
         $authFbTable = $authFbModel->getName();
         $fbIds = '';
         $friendCount = count($friends);
         foreach ($friends as $i => $friend) {
             $fbIds .= $userModel->getAdapter()->quote($friend['uid2']);
             if ($i < $friendCount - 1) {
                 $fbIds .= ',';
             }
         }
         $friendQuery = $userModel->select()->setIntegrityCheck(false)->from($userTable, array('id'))->join($authFbTable, $authFbTable . '.user_id = ' . $userTable . '.id', array())->where('facebook_uid IN (' . $fbIds . ')')->order($userTable . '.id');
         $localUsers = $userModel->fetchAll($friendQuery);
         $localUserCount = count($localUsers);
         // Insert new friendships into binding model
         $bindingModel = new $config['bindingModel']();
         $insertSql = 'INSERT IGNORE INTO ' . $bindingModel->getName() . ' (user1_id, user2_id) VALUES ';
         foreach ($localUsers as $i => $localUser) {
             $insertSql .= '(' . $localUser->id . ',' . $config['user_id'] . '),';
             $insertSql .= '(' . $config['user_id'] . ',' . $localUser->id . ')';
             if ($i < $localUserCount - 1) {
                 $insertSql .= ',';
             }
         }
         $result = $bindingModel->getAdapter()->query($insertSql);
         // Clear cache manually, since the table isn't updated thru conventional paths.
         Garp_Cache_Manager::purge($bindingModel);
         return !!$result;
     } catch (Exception $e) {
         return false;
     }
 }
Esempio n. 13
0
 public static function getUserFacebookFriends(GameUsers $user)
 {
     if (!empty($user)) {
         $userId = $user->getUserId();
         $fbId = $user->getFacebookId();
         $oauthTOken = $user->getOauthToken();
         if (!empty($userId) && !empty($fbId) && !empty($oauthTOken)) {
             $facebook = new Facebook(array('appId' => FB_APP_ID, 'secret' => FB_APP_SECRET, 'cookie' => true));
             $facebook->setAccessToken($oauthTOken);
             try {
                 $fbFriends = array();
                 $apiUrl = "/me/friends";
                 while (!empty($apiUrl)) {
                     $result = $facebook->api($apiUrl);
                     $apiUrl = null;
                     if (!empty($result)) {
                         $data = null;
                         if (isset($result["data"])) {
                             $data = $result["data"];
                         }
                         if (!empty($data) && sizeof($data)) {
                             foreach ($data as $fbFriend) {
                                 if (!empty($fbFriend)) {
                                     array_push($fbFriends, $fbFriend);
                                 }
                             }
                         }
                         unset($data);
                         if (isset($result["paging"])) {
                             $paging = $result["paging"];
                             if (!empty($paging) && isset($paging["next"]) && !empty($paging["next"])) {
                                 $next = $paging["next"];
                                 if (strpos($next, "/friends")) {
                                     $apiUrl = "/me" . substr($next, strpos($next, "/friends"));
                                 }
                                 unset($next);
                             }
                             unset($paging);
                         }
                     }
                     unset($result);
                     unset($apiUrl);
                 }
                 return $fbFriends;
             } catch (Exception $exc) {
                 error_log("FriendUtils>getUserFacebookFriends> Error : " . $exc->getMessage() . " Trace : " . $exc->getTraceAsString());
             }
         }
     }
     return null;
 }
Esempio n. 14
0
 /**
  * get SocialNetwork Profile info from facebook server
  * @param string $accessToken
  */
 public function _getProfileInfoByAccessToken($accessToken = null)
 {
     if ($accessToken) {
         self::$object->setAccessToken($accessToken);
     }
     try {
         self::$oProfile = self::$object->api('/me');
         self::$oProfile = new ArrayObject(self::$oProfile);
         self::$oProfile->setFlags(ArrayObject::ARRAY_AS_PROPS);
         self::$oSocialPlugin = $this;
         return true;
     } catch (Exception $e) {
         SJB_Error::writeToLog($e->getMessage());
     }
     return false;
 }
 /**
  * Exchanges the code for a valid access token
  *
  * @link https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/#confirm
  *
  * @param \Facebook $facebook
  * @param string $code
  * @param string $redirectUri the redirect uri with which the login url was generated
  *
  * @return bool
  */
 public function confirmIdentityWithCode(\Facebook $facebook, $code, $redirectUri)
 {
     $request = $this->client->get("/oauth/access_token");
     $request->getQuery()->set("client_id", $facebook->getAppId())->set("redirect_uri", $redirectUri)->set("client_secret", $facebook->getAppSecret())->set("code", $code);
     try {
         $response = $request->send();
         parse_str($response->getBody(true), $data);
         if (isset($data["access_token"])) {
             $facebook->setAccessToken($data["access_token"]);
             return true;
         }
         return false;
     } catch (ClientErrorResponseException $e) {
         return false;
     }
 }
 public function api($name)
 {
     $config = Configure::read('Opauth.Strategy.Facebook');
     $facebook = new Facebook(array('appId' => $config['app_id'], 'secret' => $config['app_secret']));
     $facebook->setAccessToken($this->Session->read('Auth.Facebook.access_token'));
     // Get User ID
     $user = $facebook->getUser();
     if ($user) {
         try {
             // Proceed knowing you have a logged in user who's authenticated.
             return $facebook->api($name);
         } catch (FacebookApiException $e) {
             error_log($e);
         }
     }
     return null;
 }
 public function connect($accessToken = null)
 {
     if (!$this->token) {
         $accessToken = (string) $accessToken;
     } else {
         $accessToken = $this->token->getAccessToken();
     }
     if (!$accessToken) {
         throw new \Exception('You must provide an access token.');
     }
     $this->app = $this->appService->getApplication(self::RESOURCE_OWNER);
     $config = ['appId' => $this->app->getKey(), 'secret' => $this->app->getSecret(), 'fileUpload' => false, 'allowSignedRequest' => false];
     $facebook = new \Facebook($config);
     $facebook->setAccessToken($accessToken);
     $user = $facebook->getUser();
     try {
         if ($user) {
             return $facebook;
         } elseif ($this->token) {
             // Renew access token.
             FacebookSession::setDefaultApplication($this->app->getKey(), $this->app->getSecret());
             $longLivedAccessToken = new AccessToken($this->token->getAccessToken());
             try {
                 // Get a code from a long-lived access token
                 $code = AccessToken::getCodeFromAccessToken($longLivedAccessToken);
             } catch (FacebookSDKException $e) {
                 throw new ExternalApiException($e->getMessage(), $e->getCode(), $e);
             }
             try {
                 // Get a new long-lived access token from the code
                 $newLongLivedAccessToken = AccessToken::getAccessTokenFromCode($code);
             } catch (FacebookSDKException $e) {
                 throw new ExternalApiException($e->getMessage(), $e->getCode(), $e);
             }
             $accessToken = new AccessToken($newLongLivedAccessToken);
             //                dump($accessToken->getInfo());exit;
             $this->token->setAccessToken($newLongLivedAccessToken);
             $this->tokenService->setToken($this->token);
             // Connect to Facebook REST API again.
             $this->connect();
         }
     } catch (\FacebookApiException $e) {
         $user = null;
     }
 }
Esempio n. 18
0
function resourceGet($api, $tools, $param)
{
    include_once LIB_PATH . 'facebook/facebook.php';
    global $FBArr, $fansId;
    $param['fbId'] = $tools->sql_injection_anti($_SESSION["fbId"]);
    if ($param['fbId'] == '') {
        header("Location: index.php?page=chkfans");
    }
    $facebook = new Facebook($FBArr);
    $facebook->setAccessToken($_SESSION["fb_{$FBArr['appId']}_access_token"]);
    //無菸生活
    $isFans = $facebook->api(array('method' => 'fql.query', 'query' => "SELECT target_id FROM connection WHERE source_id = '{$param['fbId']}' AND target_id = '{$fansId}'"));
    if (empty($isFans)) {
        $api->setOutput("確認是否加入粉綜", array("isFans" => false));
    } else {
        $api->setOutput("確認是否加入粉綜", array("isFans" => true));
    }
    return;
}
Esempio n. 19
0
function postCheckinToFacebook($appSecret, $userID, $token, $message, $firstAttempt)
{
    // Setup facebook
    $facebook = new Facebook(array('appId' => '400073310043056', 'secret' => $appSecret));
    $facebook->setAccessToken($token);
    // Construct and send the location based post
    try {
        $result = $facebook->api('/' . $userID . '/feed', 'POST', array('access_token' => $facebook->getAccessToken(), 'place' => '246419308104', 'message' => $message, 'coordinates' => json_encode(array('latitude' => '-27.47159234211', 'longitude' => '153.019149383', 'tags' => $userID))));
    } catch (FacebookApiException $e) {
        echo $e->__toString();
        if ($firstAttempt == true) {
            // Having trouble figuring out how to differentiate between the various errors that
            // can be caught here (they don't use unique codes for some reason!?)
            // But it doesn't matter, we can pretty harmlessly just retry with an extended token
            $token = $facebook->getExtendedAccessToken();
            if (isset($token)) {
                postCheckinToFacebook($appSecret, $userID, $token, $message, false);
            }
        }
        // Ignore errors if we've already tried this again
    }
}
Esempio n. 20
0
 * @author Timur Malgazhdarov
 * @copyright 2013
 */
require_once "facebook.php";
require_once 'config.php';
$username = '******';
$config = array('appId' => '645818095470152', 'secret' => 'FACEBOOK_APP_SECRET');
$facebook = new Facebook($config);
/*Connecting to the database*/
mysql_connect(SERVER, DB_USERNAME, DB_PASSWORD);
mysql_select_db('paw');
/*Finding user's twitter oauth tokens and secrets in database if they exist*/
$query = mysql_query("SELECT * FROM facebook_users WHERE oauth_provider = 'facebook' AND username = '******'");
$result = mysql_fetch_array($query);
if (!empty($result)) {
    $facebook->setAccessToken($result['oauth_token']);
}
$user_id = $facebook->getUser();
?>
<!DOCTYPE html>
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    </head>
    <body>
    <?php 
if ($user_id) {
    try {
        $facebook->setExtendedAccessToken();
        $access_token = $facebook->getAccessToken();
        $inbox = $facebook->api('/me/inbox', 'GET');
Esempio n. 21
0
$fb_apikey = 'mi_facebook_app_id';
$fb_secret = 'mi_facebook_app_id';
$facebook = new Facebook(array('appId' => $fb_apikey, 'secret' => ${$fb_secret}));
// obtener el codigo de respuesta
$code = $_REQUEST["code"];
// construir el URL de login de Facebook
$fbLoginUrl = $facebook->getLoginUrl(array('scope' => 'email', 'display' => 'popup', 'redirect_uri' => $script_url));
// si no existe codigo de retorno de facebook, enviarmos al usuario al formulario
// de login de Facebook
if (empty($code)) {
    echo "<script> top.location.href='{$fbLoginUrl}'</script>";
    exit;
} else {
    // obtener el token de autenticacion a partir de Facebook Graph
    $token_url = "https://graph.facebook.com/oauth/access_token?" . "client_id=" . $fb_apikey . "&redirect_uri=" . urlencode($script_url) . "&client_secret=" . $fb_secret . "&code=" . $code;
    // obteenemos la respuesta y la interpretamos
    $response = @file_get_contents($token_url);
    $params = null;
    parse_str($response, $params);
    // asignamos al objecto Facebook el token para proceder a realizar
    // llamadas al API posteriormente
    $facebook->setAccessToken($params['access_token']);
    $fbme = $facebook->api('/me', 'GET');
    if ($fbme) {
        // teniendo el objeto Facebook ME (datos del usuario) procedemos
        // a realizar nuestro proceso ya sea de login o registro.
        proceed_login_or_register($fbme);
    }
}
?>
  
 /**
  * Process actions based on $_GET parameters. Authorize FB user or add FB page.
  * @param arr $options Facebook plugin options
  * @param Facebook $facebook Facebook object
  */
 protected function processPageActions($options, Facebook $facebook)
 {
     //authorize user
     if (isset($_GET["code"]) && isset($_GET["state"])) {
         //validate state to avoid CSRF attacks
         if ($_GET["state"] == SessionCache::get('facebook_auth_csrf')) {
             //Prepare API request
             //First, prep redirect URI
             $redirect_uri = urlencode(Utils::getApplicationURL() . 'account/?p=facebook');
             //Build API request URL
             $api_req = 'https://graph.facebook.com/oauth/access_token?client_id=' . $options['facebook_app_id']->option_value . '&client_secret=' . $options['facebook_api_secret']->option_value . '&redirect_uri=' . $redirect_uri . '&state=' . SessionCache::get('facebook_auth_csrf') . '&code=' . $_GET["code"];
             $access_token_response = FacebookGraphAPIAccessor::rawApiRequest($api_req, false);
             parse_str($access_token_response);
             if (isset($access_token)) {
                 /**
                  * Swap in short-term token for long-lived token as per
                  * https://developers.facebook.com/docs/facebook-login/access-tokens/#extending
                  */
                 $api_req = 'https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=' . $options['facebook_app_id']->option_value . '&client_secret=' . $options['facebook_api_secret']->option_value . '&fb_exchange_token=' . $access_token;
                 $access_token_response = FacebookGraphAPIAccessor::rawApiRequest($api_req, false);
                 parse_str($access_token_response);
                 $facebook->setAccessToken($access_token);
                 $fb_user_profile = $facebook->api('/me');
                 $fb_username = $fb_user_profile['name'];
                 $fb_user_id = $fb_user_profile['id'];
                 if (empty($fb_username)) {
                     $error = 'Sorry, ThinkUp does not support business accounts.';
                     $this->addErrorMessage($error, 'authorization');
                 } else {
                     $this->addSuccessMessage($this->saveAccessToken($fb_user_id, $access_token, $fb_username), 'authorization');
                 }
             } else {
                 $error_msg = "Problem authorizing your Facebook account! Please correct your plugin settings.";
                 $error_object = json_decode($access_token_response);
                 if (isset($error_object) && isset($error_object->error->type) && isset($error_object->error->message)) {
                     $error_msg = $error_msg . "<br>Facebook says: \"" . $error_object->error->type . ": " . $error_object->error->message . "\"";
                 } else {
                     $error_msg = $error_msg . "<br>Facebook's response: \"" . $access_token_response . "\"";
                 }
                 $this->addErrorMessage($error_msg, 'authorization', true);
             }
         } else {
             $this->addErrorMessage("Could not authenticate Facebook account due to invalid CSRF token.", 'authorization');
         }
     }
     //insert pages
     if (isset($_GET["action"]) && $_GET["action"] == "add page" && isset($_GET["facebook_page_id"]) && isset($_GET["viewer_id"]) && isset($_GET["owner_id"]) && isset($_GET["instance_id"])) {
         //get access token
         $oid = DAOFactory::getDAO('OwnerInstanceDAO');
         $tokens = $oid->getOAuthTokens($_GET["instance_id"]);
         $access_token = $tokens['oauth_access_token'];
         $page_data = FacebookGraphAPIAccessor::apiRequest('/' . $_GET["facebook_page_id"], $access_token, "id,name,picture");
         self::insertPage($page_data->id, $_GET["viewer_id"], $_GET["instance_id"], $page_data->name, $page_data->picture->data->url);
     }
 }
Esempio n. 23
0
 public function CheckFBLogin($userId = '', $token = '')
 {
     $user = false;
     require_once ROOTPATH . "data/third_party/facebook/facebook.php";
     $config = array('appId' => '1694540550761953', 'secret' => 'f7a843098dd1d43d071e25075110d4d9', 'sharedSession' => true);
     $facebook = new Facebook($config);
     $facebook->setAccessToken($token);
     if ($facebook->getUser()) {
         try {
             $user = $facebook->api("/{$userId}", array('fields' => 'email, picture, name, last_name, first_name'));
         } catch (FacebookApiException $e) {
         }
     }
     return $user;
 }
Esempio n. 24
0
 /**
  * Function to post Message to Facebook on various actions
  * @param array $userData
  * @param string $statusMessage
  * @author Rohan Julka
  * */
 public function postToFacebook($userData, $statusMessage)
 {
     require_once ROOT . DS . APP_DIR . DS . 'Plugin/facebook/facebook.php';
     $facebookData = array();
     $facebookData['appId'] = Configure::read('appId');
     $facebookData['secret'] = Configure::read('appSecret');
     $connection = new Facebook($facebookData);
     $connection->setAccessToken($userData['User']['fb_access_token']);
     $params = array();
     $params["access_token"] = $userData['User']['fb_access_token'];
     $params["message"] = $statusMessage;
     $params["name"] = $statusMessage;
     $params["description"] = $statusMessage;
     try {
         $connection->api('/me/feed', 'POST', $params);
     } catch (Exception $e) {
         $this->Session->setFlash('Unable to post to Facebook', 'Front/flash_bad');
     }
 }
 /**
  * Logs out the user from Facebook
  *
  */
 private function do_facebook_logout()
 {
     $this->clear_facebook_data_from_session_and_db_and_disable_cron();
     // Get an instance of the Facebook class
     $facebook = $this->facebook_instance_factory();
     // Get the logout URL from the Facebook Class
     $logout = $facebook->getLogoutUrl();
     $this->facebook->setAccessToken('');
     // Redirect the user to the logout url, facebook will redirect him to our page
     wp_redirect($logout);
 }
Esempio n. 26
0
        //將FB的COOKIE 寫進去 Safari用
        setcookie("fbs_" . $FBArr['appId'], $session_row, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
        //Safari 判斷用戶非重複登入
        setcookie("uid", $fb_sessionArr->uid, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
    } catch (Exception $e) {
        //錯誤的session登入
    }
}
/****FOR SAFARI 專用:結束****/
//判斷是否登入依據
//$FBSession = $facebook->getSession();
//$FBuid = $facebook->getUser();//抓取uid值''
//代表第一次登入,且不是同一個人
if ($_SESSION["fb_{$FBArr['appId']}_access_token"] != "") {
    //$_SESSION['FbUid'] = $FBuid;
    $facebook->setAccessToken($_SESSION["fb_{$FBArr['appId']}_access_token"]);
    $me = $facebook->api('/me');
    //抓取用戶資訊
    //print "登入後要做的事情,記錄USER_INFO";
    if ($me["id"] == "" or $_SESSION["fbId"] != $me["id"]) {
        $_SESSION = array();
        header("Location: /");
        exit;
    }
    $_SESSION["fbId"] = $me["id"];
}
unset($facebook);
//設定需要登入
// $Login = true;
// $tpl->page = $_GET['page'];
// $tpl->ToUrl = $ROOTURL."index.php?page=".$_GET['page'];
 /**
  * Sets the access token
  *
  * @param string $accessToken
  */
 public function setAccessToken($accessToken)
 {
     $this->facebook->setAccessToken($accessToken);
 }
Esempio n. 28
-1
 /**
  * {@inheritdoc}
  */
 function loginFinish()
 {
     // in case we get error_reason=user_denied&error=access_denied
     if (isset($_REQUEST['error']) && $_REQUEST['error'] == "access_denied") {
         throw new Exception("Authentication failed! The user denied your request.", 5);
     }
     // in case we are using iOS/Facebook reverse authentication
     if (isset($_REQUEST['access_token'])) {
         $this->token("access_token", $_REQUEST['access_token']);
         $this->api->setAccessToken($this->token("access_token"));
         $this->api->setExtendedAccessToken();
         $access_token = $this->api->getAccessToken();
         if ($access_token) {
             $this->token("access_token", $access_token);
             $this->api->setAccessToken($access_token);
         }
         $this->api->setAccessToken($this->token("access_token"));
     }
     // if auth_type is used, then an auth_nonce is passed back, and we need to check it.
     if (isset($_REQUEST['auth_nonce'])) {
         $nonce = Hybrid_Auth::storage()->get('fb_auth_nonce');
         //Delete the nonce
         Hybrid_Auth::storage()->delete('fb_auth_nonce');
         if ($_REQUEST['auth_nonce'] != $nonce) {
             throw new Exception("Authentication failed! Invalid nonce used for reauthentication.", 5);
         }
     }
     // try to get the UID of the connected user from fb, should be > 0
     if (!$this->api->getUser()) {
         throw new Exception("Authentication failed! {$this->providerId} returned an invalid user id.", 5);
     }
     // set user as logged in
     $this->setUserConnected();
     // store facebook access token
     $this->token("access_token", $this->api->getAccessToken());
 }
Esempio n. 29
-1
<?php

require_once 'src/facebook.php';
session_start();
$config = array();
$APP_ID = '1615223755370942';
$APP_SECRET = '4d2bd3e5041697a6f249b0b7d7f683de';
$config = array();
$config["appId"] = $APP_ID;
$config["secret"] = $APP_SECRET;
$config["fileUpload"] = false;
$config["cookie"] = true;
$config["domain"] = 'capsicumtechnologies.co.in';
$facebook = new Facebook($config);
$accessToken = $facebook->getAccessToken();
$facebook->setAccessToken($accessToken);
$user_id = $facebook->getUser();
$ret_obj = $facebook->api('/me', 'GET');
$_SESSION['ret_obj'] = $ret_obj;
Esempio n. 30
-2
 public function recibirInformacion()
 {
     session_start();
     if (isset($_GET['code'])) {
         $tokenDetails = $this->getAccessTokenDetails(APPID, APPSECRET, URL_REDIRECT, $_GET['code']);
         $token = $tokenDetails['access_token'];
         $_SESSION['access_token'] = $token;
         $config = array();
         $config['appId'] = APPID;
         $config['secret'] = APPSECRET;
         $facebook = new Facebook($config);
         if (isset($_SESSION['access_token'])) {
             // echo "entre";
             $facebook->setAccessToken($_SESSION['access_token']);
         }
         //  $user_id = $facebook->getUser();
         $opcion = "";
         $query = "";
         $jsonDecodificado = "";
         if (isset($_REQUEST['opcion'])) {
             $opcion = $_REQUEST['opcion'];
         }
         if (isset($_REQUEST['query'])) {
             $query = $_REQUEST['query'];
         }
         if ($opcion != "") {
             $jsonDecodificado = json_encode($facebook->api('/me/' . $opcion));
         } else {
             if ($query != "") {
                 $jsonDecodificado = json_encode($facebook->api(array('method' => 'fql.query', 'query' => $query)));
             } else {
                 $jsonDecodificado = json_encode($facebook->api('/me'));
             }
         }
         $pathtoVista = "./modulos/{$this->nombre}/views/index.php";
         parent::asignar(array('contenido' => $pathtoVista, 'json' => $jsonDecodificado));
         parent::cargarVista('index', $parametros);
         // header('Location: ' . URL_PAGE);
     }
 }