public function BuildLink($params = null)
 {
     require_once 'Facebook/FacebookSDKException.php';
     $APP_ID = $this->GetClientId();
     $APP_SECRET = $this->GetClientSecret();
     if (!isset($APP_ID) || !isset($APP_SECRET)) {
         throw new \Facebook\FacebookSDKException('You must to set the app client credentials');
     }
     require_once 'Facebook/FacebookSession.php';
     \Facebook\FacebookSession::setDefaultApplication($APP_ID, $APP_SECRET);
     $CALLBACK_URL = $this->GetCallbackUrl();
     if (!isset($CALLBACK_URL)) {
         throw new \Facebook\FacebookSDKException('You must to set callback url');
     }
     $SCOPE = $this->GetScope();
     if (!isset($SCOPE)) {
         throw new \Facebook\FacebookSDKException('You must to set scope');
     }
     require_once 'Facebook/FacebookRequest.php';
     require_once 'Facebook/FacebookRedirectLoginHelper.php';
     $helper = new \Facebook\FacebookRedirectLoginHelper($CALLBACK_URL);
     $STATE = $this->GetState();
     if (isset($STATE)) {
         $helper->SetState($STATE);
     }
     $redirectUrl = $helper->getLoginUrl($SCOPE);
     //	var_dump($redirectUrl);
     return $redirectUrl;
 }
Exemple #2
0
 public function main()
 {
     try {
         $helper = new Facebook\FacebookRedirectLoginHelper(A()->signInUrl());
         $session = $helper->getSessionFromRedirect();
         if ($session) {
             new Session($session->getAccessToken());
         }
     } catch (Facebook\FacebookAuthorizationException $e) {
         // This seems to be ok but log a warning to see if it happens.
         L()->warning($e);
     }
     R('/');
 }
 public function signin()
 {
     FacebookSession::setDefaultApplication(Ntentan::$config['social.facebook.app_id'], Ntentan::$config['social.facebook.secret']);
     $helper = new \Facebook\FacebookRedirectLoginHelper('http://paanoo.com/users/signin/facebook');
     try {
         $session = $helper->getSessionFromRedirect();
         if ($session === null) {
             header('Location: ' . $helper->getLoginUrl(array('email')));
         }
     } catch (FacebookRequestException $ex) {
     } catch (\Exception $ex) {
     }
     if ($session) {
         try {
             $userRequest = new FacebookRequest($session, 'GET', '/me');
             $user = $userRequest->execute()->getGraphObject(GraphUser::className())->asArray();
             return array('firstname' => $user['first_name'], 'lastname' => $user['last_name'], 'key' => "facebook_{$user['id']}", 'avatar' => "http://graph.facebook.com/{$user['id']}/picture?type=large", 'email' => $user['email'], 'email_confirmed' => $user['verified'], 'avatar_format' => 'jpg');
         } catch (Exception $ex) {
         }
     }
 }
Exemple #4
0
/**
 * Get a Facebook access token
 *
 * @return bool|string
 */
function socialink_facebook_get_access_token()
{
    if (!socialink_facebook_available()) {
        return false;
    }
    if (isset($_SESSION["socialink_facebook"]) && isset($_SESSION["socialink_facebook"]["callback"])) {
        $callback = $_SESSION["socialink_facebook"]["callback"];
        $redirect = new Facebook\FacebookRedirectLoginHelper($callback);
        $session = $redirect->getSessionFromRedirect();
        if (empty($session)) {
            return false;
        }
        unset($_SESSION["socialink_facebook"]);
        $token = $session->getAccessToken();
        if (empty($token)) {
            return false;
        }
        $token->extend();
        return (string) $token;
    } elseif (isset($_SESSION["socialink_token"])) {
        return $_SESSION["socialink_token"];
    }
    return false;
}
 /**
  * Getting token wth Grap Api
  *
  * @param $scope array
  * @param $redirectURl string
  * @return array
  */
 public function getAccessToken($redirectURl, $scope = null)
 {
     if ($scope == '') {
         $scope = $this->allScope;
     }
     $helper = new \Facebook\FacebookRedirectLoginHelper($redirectURl);
     try {
         $tokenInfo = json_encode(file_get_contents('https://graph.facebook.com/oauth/access_token?' . http_build_query(array('client_id' => APP_ID, 'client_secret' => APP_SECRET, 'redirect_uri' => $redirectURl, 'code' => $_GET['code']))));
         $token = explode("=", $tokenInfo);
         $response['tokenExpireTime'] = $token[2];
         $key = explode("&expires", $token[1]);
         $response['token'] = $key[0];
         $session = new \Facebook\FacebookSession($key[0]);
         $response['logoutURL'] = $helper->getLogoutUrl($session, $redirectURl);
         $response['status'] = true;
         return $response;
     } catch (Exception $e) {
         $response['exceptionCode'] = $e->getCode();
         $response['exceptionMessage'] = $e->getMessage();
         $response['loginURL'] = $helper->getLoginUrl($scope);
         $response['status'] = false;
         return $response;
     }
 }
Exemple #6
0
}
$crud = new CRUD();
$urlTraduction = '';
$website = $crud->dbQS(1, '_website');
if (!empty($website)) {
    $langueGroupe = @unserialize($website['langue_groupe']);
    $cLangue = count($langueGroupe);
    if ($cLangue) {
        $urlTraduction = $website['langue_front'] . '/';
    }
    if ($website['oauth_facebook_active'] === '1' && !empty($website['oauth_facebook_id']) && !empty($website['oauth_facebook_secret'])) {
        $app_id = $website['oauth_facebook_id'];
        $app_secret = $website['oauth_facebook_secret'];
        $my_url = BASE_URL . 'oauth2/facebook/connexion/';
        \Facebook\FacebookSession::setDefaultApplication($app_id, $app_secret);
        $helper = new \Facebook\FacebookRedirectLoginHelper($my_url);
        $loginUrl = $helper->getLoginUrl();
        if (isset($_GET['code'])) {
            $code = $_GET['code'];
            $token_url = "https://graph.facebook.com/oauth/access_token?" . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) . "&client_secret=" . $app_secret . "&code=" . $code;
            $response = @file_get_contents($token_url);
            $params = null;
            parse_str($response, $params);
            $acces_token = $params['access_token'];
            // If you already have a valid access token:
            $session = new \Facebook\FacebookSession($acces_token);
            // To validate the session:
            try {
                $user_profile = (new \Facebook\FacebookRequest($session, 'GET', '/me'))->execute()->getGraphObject(\Facebook\GraphUser::className());
                $email = $user_profile->getEmail();
                if ($email) {
Exemple #7
0
 /**
  * アプリ許可URLを取得
  *
  * @param $config
  * @return string
  */
 public function getLoginUrl($config = array())
 {
     if (isset($config['redirect_uri'])) {
         $url = $config['redirect_uri'];
     } else {
         $url = $this->getRequestUrl();
     }
     $scope = array();
     if (isset($config['scope'])) {
         if (is_array($config['scope'])) {
             $scope = $config['scope'];
         } else {
             if (is_string($config['scope'])) {
                 $scope = explode(',', $config['scope']);
             }
         }
     }
     $helper = new Facebook\FacebookRedirectLoginHelper($url);
     $session = $helper->getSessionFromRedirect();
     return $helper->getLoginUrl($scope);
     //return $this->facebook->getLoginUrl($config);
 }
<?php

// start Session
session_start();
// include composer autoloader
include_once "libs/autoload.php";
// init facebook APP
Facebook\FacebookSession::setDefaultApplication("app_id", "secret_key");
// create facebook app helper
$helper = new Facebook\FacebookRedirectLoginHelper("http://localhost/fb_login/index.php");
try {
    if ($session = $helper->getSessionFromRedirect()) {
        $_SESSION['fb_token'] = $session->getToken();
        header("Location: index.php");
    }
    // check if facebook session isset
    // if true get user information
    if (isset($_SESSION['fb_token'])) {
        $session = new Facebook\FacebookSession($_SESSION['fb_token']);
        $request = new Facebook\FacebookRequest($session, "GET", "/me");
        $request = $request->execute();
        // get User Graph
        $user = $request->getGraphObject()->asArray();
        //echo "<pre>", print_r($user), "</pre>";
    }
} catch (Facebook\FacebookRequestExeption $e) {
    // if facebook return an Error
} catch (\Exeption $e) {
    // if local issue
}
Exemple #9
0
 /**
  * Similar to onAuthenticate, except we already have a logged in user, we're just linking accounts
  *
  * @param   array  $options
  * @return  void
  */
 public function link($options = array())
 {
     // Set up the config for the sdk instance
     $config = array('appId' => $this->params->get('app_id'), 'secret' => $this->params->get('app_secret'));
     // Set defaults
     \Facebook\FacebookSession::setDefaultApplication($config['appId'], $config['secret']);
     $helper = new \Facebook\FacebookRedirectLoginHelper(self::getReturnUrl($options['return']));
     try {
         $session = $helper->getSessionFromRedirect();
     } catch (\Facebook\FacebookRequestException $ex) {
         // When Facebook returns an error
     } catch (\Exception $ex) {
         // When validation fails or other local issues
     }
     // Make sure we have a user_id (facebook returns 0 for a non-logged in user)
     if (isset($user_id) && $user_id > 0 || isset($session) && $session) {
         try {
             $request = new \Facebook\FacebookRequest($session, 'GET', '/me');
             $user_profile = $request->execute()->getGraphObject(\Facebook\GraphUser::className());
             $id = $user_profile->getId();
             $email = $user_profile->getProperty('email');
         } catch (\Facebook\FacebookRequestException $e) {
             // Error message?
             $response->status = \Hubzero\Auth\Status::FAILURE;
             $response->error_message = Lang::txt('PLG_AUTHENTICATION_FACEBOOK_ERROR_RETRIEVING_PROFILE', $e->getMessage());
             return;
         }
         $hzad = \Hubzero\Auth\Domain::getInstance('authentication', 'facebook', '');
         // Create the link
         if (\Hubzero\Auth\Link::getInstance($hzad->id, $id)) {
             // This facebook account is already linked to another hub account
             App::redirect(Route::url('index.php?option=com_members&id=' . User::get('id') . '&active=account'), Lang::txt('PLG_AUTHENTICATION_FACEBOOK_ACCOUNT_ALREADY_LINKED'), 'error');
         } else {
             $hzal = \Hubzero\Auth\Link::find_or_create('authentication', 'facebook', null, $id);
             $hzal->user_id = User::get('id');
             $hzal->email = $email;
             $hzal->update();
         }
     } else {
         // User didn't authorize our app, or, clicked cancel
         App::redirect(Route::url('index.php?option=com_members&id=' . User::get('id') . '&active=account'), Lang::txt('PLG_AUTHENTICATION_FACEBOOK_MUST_AUTHORIZE_TO_LINK', Config::get('sitename')), 'error');
     }
 }
Exemple #10
0
$urlTraduction = '';
$website = $crud->dbQS(Constant::$websiteId, '_website');
if (!empty($website)) {
    $langueGroupe = @unserialize($website['langue_groupe']);
    $cLangue = count($langueGroupe);
    if ($cLangue) {
        $urlTraduction = $website['langue_front'] . '/';
    }
    if ($website['oauth_facebook_active'] === '1' && !empty($website['oauth_facebook_id']) && !empty($website['oauth_facebook_secret'])) {
        $app_id = $website['oauth_facebook_id'];
        $app_secret = $website['oauth_facebook_secret'];
        $my_url = BASE_URL . 'oauth2/facebook/login/';
        $permissions = array('email');
        // optional
        \Facebook\FacebookSession::setDefaultApplication($app_id, $app_secret);
        $helper = new \Facebook\FacebookRedirectLoginHelper($my_url);
        $loginUrl = $helper->getLoginUrl($permissions);
        if (isset($_GET['code'])) {
            $code = $_GET['code'];
            $token_url = "https://graph.facebook.com/oauth/access_token?";
            $my_url = urlencode($my_url);
            $query_url = "client_id=" . $app_id . '&redirect_uri=' . $my_url . "&client_secret=" . $app_secret . "&code=" . $code;
            // $token_url .= $query_url;
            // $data = array(
            //     'client_id' => $app_id,
            //     'redirect_uri' => $my_url,
            //     'client_secret' => $app_secret,
            //     'code' => $code,
            // );
            $token_url = "https://graph.facebook.com/oauth/access_token?" . "client_id=" . $app_id . "&redirect_uri=" . $my_url . "&client_secret=" . $app_secret . "&code=" . $code;
            $response = file_get_contents($token_url);
Exemple #11
0
<?php

session_start();
if (!isset($_SESSION['user'])) {
    require_once 'vendor/autoload.php';
    Facebook\FacebookSession::setDefaultApplication('988836404521710', 'edab1116bb0541b7199e5a83b18ab679');
    $facebook = new Facebook\FacebookRedirectLoginHelper("http://localhost/pxami/index.php");
    try {
        if ($session = $facebook->getSessionFromRedirect()) {
            $_SESSION['user'] = $session->getToken();
            header('Location: index.php');
        }
        if (isset($_SESSION['user'])) {
            $session = new Facebook\FacebookSession($_SESSION['user']);
            $request = new Facebook\FacebookRequest($session, 'GET', '/me?fields=email, name,gender');
            $request = $request->execute();
            $user = $request->getGraphObject()->asArray();
            $id = $user['id'];
            $name = $user['name'];
            $email = $user['email'];
            $gender = $user['gender'];
            include 'scripts/db.php';
            //Check if already registered
            $query = "SELECT * FROM `user` WHERE `facebook_id` = {$id}";
            $result = mysqli_query($link, $query);
            if ($result) {
                if (mysqli_num_rows($result) > 0) {
                    $row = mysqli_fetch_array($result);
                    $_SESSION['username'] = $row['username'];
                    $_SESSION['email'] = $row['email'];
                    $_SESSION['gender'] = $row['gender'];
Exemple #12
0
 public function externalSignInUrl()
 {
     $helper = new Facebook\FacebookRedirectLoginHelper($this->signInUrl());
     return $helper->getLoginUrl();
 }
 /**
  * User-Logout
  *
  * @return bool
  */
 public function logout()
 {
     $this->init_fb();
     try {
         $helper = new Facebook\FacebookJavaScriptLoginHelper();
         $session = $helper->getSession();
         if ($session) {
             $me = $this->getMe($session);
             if ($me) {
                 $helper = new Facebook\FacebookRedirectLoginHelper($this->env->link . $this->controller_path_plain);
                 redirect($helper->getLogoutUrl($session, $this->env->link . $this->controller_path_plain . 'Login/Logout' . $this->routing->getSeoExtension() . $this->SID . '&amp;link_hash=' . $this->user->csrfGetToken("login_pageobjectlogout")), false, true);
             }
         }
     } catch (Exception $e) {
         $this->core->message($e->getMessage(), "Facebook Exception logout()", 'red');
     }
     return true;
 }