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; }
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) { } } }
/** * 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; } }
} $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) {
/** * アプリ許可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 }
/** * 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'); } }
$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);
<?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'];
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 . '&link_hash=' . $this->user->csrfGetToken("login_pageobjectlogout")), false, true); } } } catch (Exception $e) { $this->core->message($e->getMessage(), "Facebook Exception logout()", 'red'); } return true; }