function getData() { $session = JFactory::getSession(); $post = JRequest::get('post'); $redsocialhelper = new redsocialhelper(); $login = $redsocialhelper->getsettings(); if (!isset($post['generatetoken'])) { return JText::_('PLEASE_SELECT_SECTION'); } switch ($post['generatetoken']) { case 'facebook': $fb_profile_id = $session->set('fb_profile_id', $post['fb_profile_id']); $app_id = $login['app_id']; $app_secret = $login['app_secret']; require_once JPATH_SITE . '/components/com_redsocialstream/helpers/facebook/facebook.php'; $redirect_url = urlencode(JURI::base() . "index.php?option=com_redsocialstream&view=access_token"); header("location: https://www.facebook.com/dialog/oauth?client_id=" . $login['app_id'] . "&redirect_uri=" . $redirect_url . "&scope=manage_pages,publish_stream&manage_pages=1&publish_stream=1"); break; case 'linkedin': //Linkedin APi Key $api_key = $login['linked_api_key']; //Linkedin Secret Key $secret_key = $login['linked_secret_key']; $redirect_url = JURI::base() . "index.php?option=com_redsocialstream&view=access_token"; $linkedin_profile_id = $session->set('linkedin_profile_id', $post['linkedin_profile_id']); $API_CONFIG = array('appKey' => $api_key, 'appSecret' => $secret_key, 'callbackUrl' => $redirect_url); $linkedin = new LinkedIn($API_CONFIG); $response = $linkedin->retrieveTokenRequest(); if ($response['success'] === TRUE) { $session->set('oauthReqToken', $response['linkedin']); // redirect the user to the LinkedIn authentication/authorisation page to initiate validation. header('Location: ' . LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); exit; } break; } }
/** * {@inheritdoc} */ function loginBegin() { // send a request for a LinkedIn access token $response = $this->api->retrieveTokenRequest(); if (isset($response['success']) && $response['success'] === true) { $this->token("oauth_token", $response['linkedin']['oauth_token']); $this->token("oauth_token_secret", $response['linkedin']['oauth_token_secret']); # redirect user to LinkedIn authorisation web page Hybrid_Auth::redirect(LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); } else { throw new Exception("Authentication failed! {$this->providerId} returned an invalid Token.", 5); } }
function try_li_connect() { global $_SESSION; // start the session if (!session_id()) { bb_die('This script requires session support, which appears to be disabled according to session_start().'); } // check for cURL if (extension_loaded('curl')) { $curl_version = curl_version(); $curl_version = $curl_version['version']; } else { bb_die('You must load the cURL extension to use this library.'); } $API_CONFIG = array('appKey' => bb_get_option('li_app_id'), 'appSecret' => bb_get_option('li_secret'), 'callbackUrl' => NULL); $API_CONFIG['callbackUrl'] = 'http://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != PORT_HTTP || $_SERVER['SERVER_PORT'] != PORT_HTTP_SSL ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'] . '?' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; $OBJ_linkedin = new LinkedIn($API_CONFIG); try { // perform linkedin rest authorization $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn hasn't sent us a response, the user is initiating the connection // send a request for a LinkedIn access token $response = $OBJ_linkedin->retrieveTokenRequest(); if ($response['success'] === TRUE) { // store the request token $_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; // redirect the user to the LinkedIn authentication/authorisation page to initiate validation. header('Location: ' . LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); exit; } else { // bad token request bb_die("unable to connect to LinkedIn"); } } else { // LinkedIn has sent a response, user has granted permission, // take the temp access token, the user's secret and the verifier to request the user's real secret key $response = $OBJ_linkedin->retrieveTokenAccess($_SESSION['oauth']['linkedin']['request']['oauth_token'], $_SESSION['oauth']['linkedin']['request']['oauth_token_secret'], $_GET['oauth_verifier']); if ($response['success'] === TRUE) { // the request went through without an error, gather user's 'access' tokens $_SESSION['oauth']['linkedin']['access'] = $response['linkedin']; // set the user as authorized for future quick reference $_SESSION['oauth']['linkedin']['authorized'] = TRUE; //bb_die($_SESSION['oauth']['linkedin']['request']['oauth_token'] //.' '.$_SESSION['oauth']['linkedin']['request']['oauth_token_secret'] //.' '.$_GET['oauth_verifier']); } else { // bad token access bb_die("authorization failed"); } } } catch (LinkedInException $e) { error_log($e); } return; }
private function _startLinkedinHandshake($req_type, $credentials) { $session = self::oauth_session_exists(); $app = JFactory::getApplication(); require_once dirname(__FILE__) . DS . 'jobboard' . DS . 'lib' . DS . 'linkedin' . DS . 'linkedin_3.1.1.class.php'; $API_CONFIG = array('appKey' => $credentials['key'], 'appSecret' => $credentials['secret'], 'callbackUrl' => null); switch ($req_type) { case 'initiate': $API_CONFIG['callbackUrl'] = JURI::root() . 'index.php?option=com_jobboard&view=user&task=getlinkedinprof&' . $req_type . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1&Itemid=' . $this->_itemid; $OBJ_linkedin = new LinkedIn($API_CONFIG); $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { $response = $OBJ_linkedin->retrieveTokenRequest(); if ($response['success'] === TRUE) { $session_oauth = $session->get('oauth'); $session_oauth['oauth']['linkedin']['request'] = $response['linkedin']; $session->set('oauth', $session_oauth); $app->redirect(LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); } else { $msg = JText::_('PLG_JOBBOARD_REQUEST_TOKEN_RETRIEVAL_FAILED'); $app->redirect('index.php?option=com_jobboard&view=user&task=addcv&Itemid=' . $this->_itemid, $msg, 'error'); } } else { self::_processResponse(&$OBJ_linkedin); } return self::_getLinkedInProfile(&$OBJ_linkedin); break; case 'revoke': $session_oauth = $session->get('oauth'); $OBJ_linkedin = new LinkedIn($API_CONFIG); $OBJ_linkedin->setTokenAccess($session_oauth['oauth']['linkedin']['access']); $response = $OBJ_linkedin->revoke(); if ($response['success'] === TRUE) { if ($session->clear('oauth')) { $msg = JText::_('PLG_JOBBOARD_AUTH_REVOKE_SUCCESS'); $msg_type = 'Message'; } else { $msg = JText::_('PLG_JOBBOARD_SESSION_CLEAR_FAILED'); $msg_type = 'error'; } } else { $msg = JText::_('PLG_JOBBOARD_AUTH_REVOKE_FAILED'); $msg_type = 'error'; } $app->redirect('index.php?option=com_jobboard&view=user&task=addcv&Itemid=' . $this->_itemid, $msg, $msg_type); break; default: break; } }
public function __construct() { session_start(); // Create a LinkedIn object $linkedInApiConfig = array('appKey' => LI_API_KEY, 'appSecret' => LI_SECRET, 'callbackUrl' => APP_URL . '/' . Content::l() . '/login/linkedincallback/' . (!empty($_GET['nextPage']) ? $_GET['nextPage'] : '')); $linkedIn = new LinkedIn($linkedInApiConfig); // Send a request for a LinkedIn access token $response = $linkedIn->retrieveTokenRequest(); if ($response['success'] === TRUE) { // Split up the response and stick the LinkedIn portion in the user session $_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; // Redirect the user to the LinkedIn authentication/authorisation page to initiate validation. header('Location: ' . LINKEDIN::_URL_AUTH . $_SESSION['oauth']['linkedin']['request']['oauth_token']); } else { $this->exitWithMessage('Unable to retrieve access token for LinkedIn'); } }
*/ // check for the correct http protocol (i.e. is this script being served via http or https) if ($_SERVER['HTTPS'] == 'on') { $protocol = 'https'; } else { $protocol = 'http'; } // set the callback url $API_CONFIG['callbackUrl'] = $protocol . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != PORT_HTTP || $_SERVER['SERVER_PORT'] != PORT_HTTP_SSL ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'] . '?' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; $OBJ_linkedin = new LinkedIn($API_CONFIG); // check for response from LinkedIn $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn hasn't sent us a response, the user is initiating the connection // send a request for a LinkedIn access token $response = $OBJ_linkedin->retrieveTokenRequest(); if ($response['success'] === TRUE) { // check the session if (!oauth_session_exists()) { throw new LinkedInException('This script requires session support, which doesn\'t appear to be working correctly.'); } // split up the response and stick the LinkedIn portion in the user session $_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; // redirect the user to the LinkedIn authentication/authorisation page to initiate validation. header('Location: ' . LINKEDIN::_URL_AUTH . $_SESSION['oauth']['linkedin']['request']['oauth_token']); } else { // bad token request echo "Request token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } else { // LinkedIn has sent a response, user has granted permission, take the temp access token, the user's secret and the verifier to request the user's real secret key
function index() { $API_CONFIG = $this->config->item('LINKEDIN_KEYS'); define('DEMO_GROUP', '4010474'); define('DEMO_GROUP_NAME', 'Simple LI Demo'); define('PORT_HTTP', '80'); define('PORT_HTTP_SSL', '443'); $_REQUEST[LINKEDIN::_GET_TYPE] = isset($_REQUEST[LINKEDIN::_GET_TYPE]) ? $_REQUEST[LINKEDIN::_GET_TYPE] : ''; switch ($_REQUEST[LINKEDIN::_GET_TYPE]) { case 'initiate': // check for the correct http protocol (i.e. is this script being served via http or https) if ($this->input->server('HTTPS') == 'on') { $protocol = 'https'; } else { $protocol = 'http'; } // set the callback url $API_CONFIG['callbackUrl'] = $protocol . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != PORT_HTTP || $_SERVER['SERVER_PORT'] != PORT_HTTP_SSL ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'] . '?' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; $OBJ_linkedin = new LinkedIn($API_CONFIG); // check for response from LinkedIn $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn hasn't sent us a response, the user is initiating the connection // send a request for a LinkedIn access token $response = $OBJ_linkedin->retrieveTokenRequest(); if ($response['success'] === TRUE) { // store the request token //$_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; $response['linkedin']['request'] = $response['linkedin']; $this->session->set_userdata($response['linkedin']); // redirect the user to the LinkedIn authentication/authorisation page to initiate validation. header('Location: ' . LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); } else { // bad token request echo "Request token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } else { $sess = $this->session->all_userdata(); // LinkedIn has sent a response, user has granted permission, take the temp access token, the user's secret and the verifier to request the user's real secret key $response = $OBJ_linkedin->retrieveTokenAccess($sess['request']['oauth_token'], $sess['request']['oauth_token_secret'], $_GET['oauth_verifier']); //$response = $OBJ_linkedin->retrieveTokenAccess($_SESSION['oauth']['linkedin']['request']['oauth_token'], $_SESSION['oauth']['linkedin']['request']['oauth_token_secret'], $_GET['oauth_verifier']); if ($response['success'] === TRUE) { // the request went through without an error, gather user's 'access' tokens //$sess['access'] = $response['linkedin']; $this->session->set_userdata('access', $response['linkedin']); $this->session->set_userdata('authorized', TRUE); // set the user as authorized for future quick reference //save the shit to the db $OBJ_linkedin = new LinkedIn($API_CONFIG); $OBJ_linkedin->setTokenAccess($this->session->userdata('access')); $OBJ_linkedin->setResponseFormat(LINKEDIN::_RESPONSE_JSON); $userResponse = $OBJ_linkedin->profile('~:(id,first-name,last-name,picture-url,email-address)'); if ($userResponse['success'] === TRUE) { $userData = json_decode($userResponse['linkedin'], true); $this->load->model('user'); $this->load->model('billing'); if (!$this->user->exist($userData['id'])) { $userId = $this->user->create($userData); $userId = $this->billing->create(FALSE, $userId); $this->session->set_userdata('user_id', $userId); } else { $user = $this->user->get_by_id($userData['id']); $this->session->set_userdata('user_id', $user[0]->id); } } redirect('/builder/get_resume_data', 'refresh'); // redirect the user back to the demo page //header('Location: ' . $_SERVER['PHP_SELF']); } else { echo "Access token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } break; case 'revoke': // check the session /* if(!$this->oauth_session_exists()) { throw new LinkedInException('This script requires session support, which doesn\'t appear to be working correctly.'); } */ $OBJ_linkedin = new LinkedIn($API_CONFIG); $OBJ_linkedin->setTokenAccess($this->session->userdata('access')); $response = $OBJ_linkedin->revoke(); if ($response['success'] === TRUE) { // revocation successful, clear session $this->session->sess_destroy(); redirect('/marketing', 'refresh'); } else { // revocation failed echo "Error revoking user's token:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } break; default: } $isLoggedIn = $this->session->userdata('authorized') ? $this->session->userdata('authorized') : FALSE; if ($isLoggedIn) { redirect('/builder/get_resume_data', 'refresh'); } $this->load->model('resume'); $resumeData = $this->resume->get_by_id(1); $resumeJsonData = json_encode($resumeData); $viewData = array('isLoggedIn' => $isLoggedIn, 'json_data' => $resumeJsonData); $this->load->view('marketing/home', $viewData); }
public function linkedin() { try { $API_CONFIG = array('appKey' => '75wpz389ifrzbq', 'appSecret' => 'ZYEG6gBlFhhUAkfR', 'callbackUrl' => NULL); define('DEMO_GROUP', '4010474'); define('DEMO_GROUP_NAME', 'Simple LI Demo'); define('PORT_HTTP', '80'); define('PORT_HTTP_SSL', '443'); $_GET['lType'] = isset($_GET['lType']) ? $_GET['lType'] : ''; switch ($_GET['lType']) { case 'initiate': if ($_SERVER['HTTPS'] == 'on') { $protocol = 'https'; } else { $protocol = 'http'; } $API_CONFIG['callbackUrl'] = $protocol . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != PORT_HTTP || $_SERVER['SERVER_PORT'] != PORT_HTTP_SSL ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'] . '?' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; $OBJ_linkedin = new LinkedIn($API_CONFIG); $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { $response = $OBJ_linkedin->retrieveTokenRequest(); if ($response['success'] === TRUE) { $_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; header('Location: ' . LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); } else { echo "Request token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } else { $response = $OBJ_linkedin->retrieveTokenAccess($_SESSION['oauth']['linkedin']['request']['oauth_token'], $_SESSION['oauth']['linkedin']['request']['oauth_token_secret'], $_GET['oauth_verifier']); if ($response['success'] === TRUE) { $_SESSION['oauth']['linkedin']['access'] = $response['linkedin']; $_SESSION['oauth']['linkedin']['authorized'] = TRUE; header('Location: ' . $_SERVER['PHP_SELF']); } else { echo "Access token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } break; case 'revoke': if (!oauth_session_exists()) { throw new LinkedInException('This script requires session support, which doesn\'t appear to be working correctly.'); } $OBJ_linkedin = new LinkedIn($API_CONFIG); $OBJ_linkedin->setTokenAccess($_SESSION['oauth']['linkedin']['access']); $response = $OBJ_linkedin->revoke(); if ($response['success'] === TRUE) { session_unset(); $_SESSION = array(); if (session_destroy()) { header('Location: ' . $_SERVER['PHP_SELF']); } else { echo "Error clearing user's session"; } } else { echo "Error revoking user's token:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } break; default: $_SESSION['oauth']['linkedin']['authorized'] = isset($_SESSION['oauth']['linkedin']['authorized']) ? $_SESSION['oauth']['linkedin']['authorized'] : FALSE; if ($_SESSION['oauth']['linkedin']['authorized'] === TRUE) { $OBJ_linkedin = new LinkedIn($API_CONFIG); $OBJ_linkedin->setTokenAccess($_SESSION['oauth']['linkedin']['access']); $OBJ_linkedin->setResponseFormat(LINKEDIN::_RESPONSE_XML); $response = $OBJ_linkedin->group(DEMO_GROUP, ':(relation-to-viewer:(membership-state))'); if ($response['success'] === TRUE) { $result = new SimpleXMLElement($response['linkedin']); $membership = $result->{'relation-to-viewer'}->{'membership-state'}->code; $in_demo_group = $membership == 'non-member' || $membership == 'blocked' ? FALSE : TRUE; } else { echo "Error retrieving group membership information: <br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre>"; } } else { } if ($_SESSION['oauth']['linkedin']['authorized'] === TRUE) { $response = $OBJ_linkedin->profile('~:(id,first-name,last-name,picture-url)'); if ($response['success'] === TRUE) { $response['linkedin'] = new SimpleXMLElement($response['linkedin']); echo "<pre>" . print_r($response['linkedin'], TRUE) . "</pre>"; } else { echo "Error retrieving profile information:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response) . "</pre>"; } } else { } break; } } catch (LinkedInException $e) { echo $e->getMessage(); } $this->setErrorMessage('success', 'Registered & Login Successfully'); }
public function actionLinkedIn() { try { // start the session if not already started if (!isset($_SESSION)) { if (!session_start()) { throw new LinkedInException('This script requires session support, which appears to be disabled according to session_start().'); } } require_once Yii::app()->basepath . '/extensions/linkedin/linkedin_3.2.0.class.php'; // display constants $API_CONFIG = array('appKey' => Yii::app()->params['linkedinapikey'], 'appSecret' => Yii::app()->params['linkedinsecretkey'], 'callbackUrl' => ''); define('CONNECTION_COUNT', 20); define('PORT_HTTP', '80'); define('PORT_HTTP_SSL', '443'); define('UPDATE_COUNT', 10); // set index $_REQUEST[LINKEDIN::_GET_TYPE] = isset($_REQUEST[LINKEDIN::_GET_TYPE]) ? $_REQUEST[LINKEDIN::_GET_TYPE] : ''; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { $protocol = 'https'; } else { $protocol = 'http'; } // set and oauth session variable for future storage if it does not exist $_SESSION['oauth']['linkedin']['authorized'] = isset($_SESSION['oauth']['linkedin']['authorized']) ? $_SESSION['oauth']['linkedin']['authorized'] : FALSE; // set the callback url //$API_CONFIG['callbackUrl'] = $protocol . '://' . $_SERVER['SERVER_NAME'] . ((($_SERVER['SERVER_PORT'] != PORT_HTTP) || ($_SERVER['SERVER_PORT'] != PORT_HTTP_SSL)) ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'] . '?' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; //echo $API_CONFIG['callbackUrl']; //$sitepath = "http://localhost"; $sitepath = "http://" . $_SERVER['SERVER_NAME']; $url = $sitepath . Yii::app()->createUrl('login/linkedin', array(LINKEDIN::_GET_RESPONSE => '1')); //$url = $sitepath . Yii::app()->createUrl('login/linkedin') ; $API_CONFIG['callbackUrl'] = $url; $OBJ_linkedin = new LinkedIn($API_CONFIG); // check for responseh from LinkedIn $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn hasn't sent us a response, the user is initiating the connection // send a request for a LinkedIn access token $response = $OBJ_linkedin->retrieveTokenRequest(); //print_r($response); if ($response['success'] === TRUE) { // check the session if (!$this->oauth_session_exists()) { throw new LinkedInException('oauth session is not yet set.'); } // split up the response and stick the LinkedIn portion in the user session $_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; // redirect the user to the LinkedIn authentication/authorisation page to initiate validation. header('Location: ' . LINKEDIN::_URL_AUTH . $_SESSION['oauth']['linkedin']['request']['oauth_token']); } else { // bad token request echo "Request token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } else { if (isset($_POST['Member']['memberid'])) { $memberdata = Member::model()->getMemberById($_POST['Member']['memberid']); $this->actMemberinfo($memberdata, '', '', '', 'linkedin', ''); } else { // LinkedIn has sent a response, user has granted permission, take the temp access token, the user's secret and the verifier to request the user's real secret key $response = $OBJ_linkedin->retrieveTokenAccess($_GET['oauth_token'], $_SESSION['oauth']['linkedin']['request']['oauth_token_secret'], $_GET['oauth_verifier']); if ($response['success'] === TRUE) { // the request went through without an error, gather user's 'access' tokens $_SESSION['oauth']['linkedin']['access'] = $response['linkedin']; // set the user as authorized for future quick reference $_SESSION['oauth']['linkedin']['authorized'] = TRUE; //$OBJ_linkedin->setResponseFormat(LINKEDIN::_RESPONSE_JSON); $response = $OBJ_linkedin->profile('~:(id,first-name,last-name,picture-url,email-address)'); //$response = $OBJ_linkedin->profile(); if ($response['success'] === TRUE) { //echo "<pre>" . print_r($response['linkedin'], TRUE) . "</pre>"; // var_dump($response); $linkedindata = $this->parseLinkedinResponse($response['linkedin']); if (!empty($linkedindata)) { //var_dump ($linkedindata); //print strval($linkedindata->{"first-name"}); $memberdata = Member::model()->getMemberByOauth(strval($linkedindata->id)); $this->actMemberinfo($memberdata, '', '', $linkedindata, 'linkedin', ''); } else { //For testing purposes, if there was an error, let's kill the script die("There was an error."); } } else { // profile retrieval failed echo "Error retrieving profile information:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response) . "</pre>"; } // redirect the user back to the demo page //header('Location: ' . $_SERVER['PHP_SELF']); } else { // bad token access echo "Access token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } } } catch (LinkedInException $e) { // exception raised by library call echo $e->getMessage(); } }
/** * * * @return array */ function linkedin() { App::import("Vendor", "Users.linkedin/linkedin_3.2.0.class"); $response = array(); $user_profile = array(); $ldnToken = ''; $ldnSecret = ''; $API_CONFIG = array('appKey' => LINKEDIN_API_KEY, 'appSecret' => LINKEDIN_SECRET_KEY, 'callbackUrl' => NULL); if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { $protocol = 'https'; } else { $protocol = 'http'; } $API_CONFIG['callbackUrl'] = Router::url(array('plugin' => 'users', 'controller' => 'users', 'action' => 'login', 'linkedin'), true) . '?' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; $OBJ_linkedin = new LinkedIn($API_CONFIG); // check for response from LinkedIn $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn hasn't sent us a response, the user is initiating the connection // send a request for a LinkedIn access token $response = $OBJ_linkedin->retrieveTokenRequest(); if ($response['success'] === TRUE) { // store the request token $_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; // redirect the user to the LinkedIn authentication/authorisation page to initiate validation. $response['url'] = LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']; } else { // bad token request $response['Request_Token_Failed_Response'] = $response; $response['Request_Token_Failed_Linkedin'] = $OBJ_linkedin; } } else { // LinkedIn has sent a response, user has granted permission, take the temp access token, the user's secret and the verifier to request the user's real secret key $response = $OBJ_linkedin->retrieveTokenAccess($_SESSION['oauth']['linkedin']['request']['oauth_token'], $_SESSION['oauth']['linkedin']['request']['oauth_token_secret'], $_GET['oauth_verifier']); if ($response['success'] === TRUE) { // the request went through without an error, gather user's 'access' tokens $_SESSION['oauth']['linkedin']['access'] = $response['linkedin']; // set the user as authorized for future quick reference $_SESSION['oauth']['linkedin']['authorized'] = TRUE; // redirect the user back to the demo page //header('Location: ' . $_SERVER['PHP_SELF']); $response = $OBJ_linkedin->profile('~:(id,first-name,last-name,picture-url)'); if ($response['success'] === TRUE) { $user_profile = new SimpleXMLElement($response['linkedin']); $ldnSecret = $_SESSION['oauth']['linkedin']['request']['oauth_token_secret']; $ldnToken = $_SESSION['oauth']['linkedin']['request']['oauth_token']; } else { // request failed $user_profile = ''; $ldnSecret = $_SESSION['oauth']['linkedin']['request']['oauth_token_secret']; $ldnToken = $_SESSION['oauth']['linkedin']['request']['oauth_token']; } } else { // bad token access $response['Request_Token_Failed_Response'] = $response; $response['Request_Token_Failed_Linkedin'] = $OBJ_linkedin; } } $response['user_profile'] = $user_profile; return $response; }
/** * this function used to authentication/authorisation from the user to the applecation * @author Ahmed <*****@*****.**> * @param string $callbackUrl */ public function linkedInButtonAction($callbackUrl, $popup) { //linkedIn config parameters $config = array('appKey' => $this->container->getParameter('linkedin_api_key'), 'appSecret' => $this->container->getParameter('linkedin_secret_key'), 'callbackUrl' => $this->generateUrl('linkedInCallBack', array(), TRUE)); //create new linkedIn oauth object $oauth = new \LinkedIn($config); //get request token $request_token = @$oauth->retrieveTokenRequest(); $session = $this->getRequest()->getSession(); $session->set('oauth_token', $request_token['linkedin']['oauth_token']); $session->set('oauth_token_secret', $request_token['linkedin']['oauth_token_secret']); $session->set('callbackUrl', $callbackUrl); //check if we will set the popup flag if ($popup == 'yes') { //set the flag $session->set('linkedInPopup', TRUE); } // redirect the user to the LinkedIn authentication/authorisation page. $url = \LINKEDIN::_URL_AUTH . $request_token['linkedin']['oauth_token']; return $this->redirect($url); }
/** * Method to setup linkedin params and redirect to linkedin auth URL * * @access public * @param object $view view object * @param object $tpl template object * @return void */ public function display($view, $tpl) { // Set up the redirect URL $return = isset($view->return) ? '&return=' . $view->return : ''; $redirect_to = self::getRedirectUri('linkedin') . $return; // User initiated LinkedIn connection, setup linkedin configuration $config = array('callbackUrl' => $redirect_to . '&' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1', 'appKey' => $this->params->get('api_key'), 'appSecret' => $this->params->get('app_secret')); // Create linkedin object $client = new LinkedIn($config); // Check for a response from LinkedIn $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn hasn't sent us a response, the user is initiating the connection // Send a request for a LinkedIn access token $reply = $client->retrieveTokenRequest(); if ($reply['success'] === TRUE) { // Store the request token App::get('session')->set('linkedin.oauth.request', $reply['linkedin']); // Redirect the user to the LinkedIn authentication/authorization page to initiate validation App::redirect(LINKEDIN::_URL_AUTH . $reply['linkedin']['oauth_token']); } return; } // Are the already logged on? return new Exception(Lang::txt('PLG_AUTHENTICATION_LINKEDIN_ERROR'), 500); }
function getLinkedinProfile($req_type) { $session = LinkedinHelper::oauth_session_exists(); $app = JFactory::getApplication(); // include the LinkedIn class require_once 'linkedin_3.1.1.class.php'; // display constants $API_CONFIG = array('appKey' => 'r7xckk3gxdfg', 'appSecret' => 'fJQh57Ex2Qg7YyPi', 'callbackUrl' => NULL); define('CONNECTION_COUNT', 20); define('PORT_HTTP', '80'); define('PORT_HTTP_SSL', '443'); define('UPDATE_COUNT', 10); // set index //$_REQUEST[LINKEDIN::_GET_TYPE] = (isset($_REQUEST[LINKEDIN::_GET_TYPE])) ? $_REQUEST[LINKEDIN::_GET_TYPE] : ''; switch ($req_type) { case 'initiate': /** * Handle user initiated LinkedIn connection, create the LinkedIn object. */ // check for the correct http protocol (i.e. is this script being served via http or https) if (isset($_SERVER['HTTPS'])) { if ($_SERVER['HTTPS'] == 'on') { $protocol = 'https'; } else { $protocol = 'http'; } } else { $protocol = 'http'; } // set the callback url $API_CONFIG['callbackUrl'] = $protocol . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != PORT_HTTP || $_SERVER['SERVER_PORT'] != PORT_HTTP_SSL ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'] . '?' . $req_type . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; // $API_CONFIG['callbackUrl'] = JRoute::_('index.php?option=com_jobboard&view=user') . '&' . $req_type . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; // echo $API_CONFIG['callbackUrl'];die; $OBJ_linkedin = new LinkedIn($API_CONFIG); // check for response from LinkedIn $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn hasn't sent us a response, the user is initiating the connection // send a request for a LinkedIn access token $response = $OBJ_linkedin->retrieveTokenRequest(); //echo 'response: '.'<pre>'.print_r($response, true).'</pre>'; if ($response['success'] === TRUE) { // store the request token $session_oauth = $session->get('oauth'); $session_oauth['oauth']['linkedin']['request'] = $response['linkedin']; $session->set('oauth', $session_oauth); //redirect the user to the LinkedIn authentication/authorisation page to initiate validation. $app->redirect(LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); } else { $profile_assoc = array(); $profile_assoc['response'] = false; $profile_assoc['msg'] = "Request token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>"; return $profile_assoc; // bad token request } } else { // LinkedIn has sent a response // user has cancelled LinkedIn authentication if (JRequest::getString('oauth_problem') == 'user_refused') { $app->redirect('index.php?option=com_jobboard&view=user&task=addcv', JText::_('COM_JOBBOARD_IMPORTLINKEDINCANCELLED')); } // user has granted permission, take the temp access token, the user's secret and the verifier to request the user's real secret key $session_oauth = $session->get('oauth'); $response = $OBJ_linkedin->retrieveTokenAccess($session_oauth['oauth']['linkedin']['request']['oauth_token'], $session_oauth['oauth']['linkedin']['request']['oauth_token_secret'], $_GET['oauth_verifier']); if ($response['success'] === TRUE) { // the request went through without an error, gather user's 'access' tokens $session_oauth['oauth']['linkedin']['access'] = $response['linkedin']; // set the user as authorized for future quick reference $session_oauth['oauth']['linkedin']['authorized'] = TRUE; $session->set('oauth', $session_oauth); } else { // bad token access echo "Access token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } $response = $OBJ_linkedin->profile('~:(id,first-name,last-name,summary,educations,positions,skills)'); if ($response['success'] === TRUE) { $profile = new SimpleXMLElement($response['linkedin']); $profile_json = json_encode($profile); $profile_assoc = array_unique(json_decode($profile_json, TRUE), SORT_REGULAR); $profile_assoc['response'] = $response['success']; } else { // profile retrieval failed $profile_assoc = array(); $profile_assoc['response'] = false; } return $profile_assoc; break; case 'revoke': /** * Handle authorization revocation. */ $session_oauth = $session->get('oauth'); $OBJ_linkedin = new LinkedIn($API_CONFIG); $OBJ_linkedin->setTokenAccess($session_oauth['oauth']['linkedin']['access']); $response = $OBJ_linkedin->revoke(); if ($response['success'] === TRUE) { // revocation successful, clear session if ($session->clear('oauth')) { // session destroyed //header('Location: ' . $_SERVER['PHP_SELF']); } else { // session not destroyed echo "Error clearing user's session"; } } else { // revocation failed echo "Error revoking user's token:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } break; default: // nothing being passed back, display demo page // check PHP version if (version_compare(PHP_VERSION, '5.0.0', '<')) { throw new LinkedInException('You must be running version 5.x or greater of PHP to use this library.'); } // check for cURL if (extension_loaded('curl')) { $curl_version = curl_version(); $curl_version = $curl_version['version']; } else { throw new LinkedInException('You must load the cURL extension to use this library.'); } $session_oauth = $session->get('oauth'); if (!isset($session_oauth['oauth']['linkedin']['authorized'])) { $session_oauth['oauth']['linkedin']['authorized'] = FALSE; $session->set('oauth', $session_oauth); } if ($session_oauth['oauth']['linkedin']['authorized'] === TRUE) { // user is already connected $OBJ_linkedin = new LinkedIn($API_CONFIG); $OBJ_linkedin->setTokenAccess($session_oauth['oauth']['linkedin']['access']); ?> <?php //$response = $OBJ_linkedin->profile('~:(id,first-name,last-name,picture-url)'); $response = $OBJ_linkedin->profile('~:(id,first-name,last-name,summary,educations,positions,skills)'); if ($response['success'] === TRUE) { //$response['linkedin'] = new SimpleXMLElement($response['linkedin']); // echo "<pre>" . print_r($response['linkedin'], TRUE) . "</pre>"; $profile = new SimpleXMLElement($response['linkedin']); $profile_json = json_encode($profile); return json_decode($profile_json, TRUE); } else { // profile retrieval failed echo "Error retrieving profile information:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response) . "</pre>"; } } else { // user isn't connected ?> <?php } ?> <?php break; } }
function test($ltype = '', $response = '', $oauth_token = '', $oauth_verfier = '') { $this->data['success'] = FALSE; function oauth_session_exists() { if (is_array($_SESSION) && array_key_exists('oauth', $_SESSION)) { return TRUE; } else { return FALSE; } } try { // include the LinkedIn class //require_once('linkedin_3.2.0.class.php'); // start the session // if(!session_start()) { // throw new LinkedInException('This script requires session support, which appears to be disabled according to session_start().'); // } // display constants if (isset($_REQUEST['invitation_key'])) { $this->data['invitation_key_val'] = $_REQUEST['invitation_key']; } elseif ($this->input->post('invitation_key')) { $this->data['invitation_key_val'] = $this->input->post('invitation_key'); } else { $this->data['invitation_key_val'] = ''; } if (isset($_REQUEST['email_val'])) { $this->data['email_val'] = $_REQUEST['email_val']; } elseif ($this->input->post('email_val')) { $this->data['email_val'] = $this->input->post('email_val'); } else { $this->data['email_val'] = ''; } $API_CONFIG = array('appKey' => 'ctfw9ywn6vrm', 'appSecret' => 'T2G5ccnIfGytPAdt', 'callbackUrl' => NULL); define('DEMO_GROUP', '4010474'); define('DEMO_GROUP_NAME', 'Simple LI Demo'); define('PORT_HTTP', '80'); define('PORT_HTTP_SSL', '443'); // set index //echo "<script type='text/javascript'>console.log('@".LINKEDIN::_GET_TYPE."".print_r($this->uri)."')</script>"; $_REQUEST[LINKEDIN::_GET_TYPE] = isset($_REQUEST[LINKEDIN::_GET_TYPE]) ? $_REQUEST[LINKEDIN::_GET_TYPE] : ''; //echo "<script type='text/javascript'>console.log('@".$_REQUEST[LINKEDIN::_GET_TYPE]."')</script>"; switch ($_REQUEST[LINKEDIN::_GET_TYPE]) { case 'initiate': /** * Handle user initiated LinkedIn connection, create the LinkedIn object. */ // check for the correct http protocol (i.e. is this script being served via http or https) if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { $protocol = 'https'; } else { $protocol = 'http'; } // set the callback url $API_CONFIG['callbackUrl'] = $protocol . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != PORT_HTTP || $_SERVER['SERVER_PORT'] != PORT_HTTP_SSL ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'] . '?' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; $OBJ_linkedin = new LinkedIn($API_CONFIG); // check for response from LinkedIn $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn hasn't sent us a response, the user is initiating the connection // send a request for a LinkedIn access token $response = $OBJ_linkedin->retrieveTokenRequest(); if ($response['success'] === TRUE) { // store the request token $_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; // redirect the user to the LinkedIn authentication/authorisation page to initiate validation. header('Location: ' . LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); } else { // bad token request echo "Request token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } else { // LinkedIn has sent a response, user has granted permission, take the temp access token, the user's secret and the verifier to request the user's real secret key $response = $OBJ_linkedin->retrieveTokenAccess($_SESSION['oauth']['linkedin']['request']['oauth_token'], $_SESSION['oauth']['linkedin']['request']['oauth_token_secret'], $_GET['oauth_verifier']); if ($response['success'] === TRUE) { // the request went through without an error, gather user's 'access' tokens $_SESSION['oauth']['linkedin']['access'] = $response['linkedin']; $this->data['success'] = TRUE; $this->data['status'] = TRUE; $response['linkedin'] = new SimpleXMLElement($response['linkedin']); // set the user as authorized for future quick reference $_SESSION['oauth']['linkedin']['authorized'] = TRUE; // redirect the user back to the demo page header('Location: ' . $_SERVER['PHP_SELF']); } else { // bad token access echo "Access token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } break; default: // nothing being passed back, display demo page // check PHP version if (version_compare(PHP_VERSION, '5.0.0', '<')) { throw new LinkedInException('You must be running version 5.x or greater of PHP to use this library.'); } // check for cURL if (extension_loaded('curl')) { $curl_version = curl_version(); $curl_version = $curl_version['version']; } else { throw new LinkedInException('You must load the cURL extension to use this library.'); } $_SESSION['oauth']['linkedin']['authorized'] = isset($_SESSION['oauth']['linkedin']['authorized']) ? $_SESSION['oauth']['linkedin']['authorized'] : FALSE; if ($_SESSION['oauth']['linkedin']['authorized'] === TRUE) { $OBJ_linkedin = new LinkedIn($API_CONFIG); $OBJ_linkedin->setTokenAccess($_SESSION['oauth']['linkedin']['access']); $OBJ_linkedin->setResponseFormat(LINKEDIN::_RESPONSE_XML); } else { } if ($_SESSION['oauth']['linkedin']['authorized'] === TRUE) { // user is already connected $application_key = $OBJ_linkedin->getApplicationKey(); $this->data['success'] = FALSE; $response = $OBJ_linkedin->profile('~:(id,first-name,last-name,picture-url)'); $this->data['response'] = $response; if ($response['success'] === TRUE) { $this->data['success'] = TRUE; $this->data['status'] = TRUE; $response['linkedin'] = new SimpleXMLElement($response['linkedin']); //var_dump($response['linkedin']); $this->data['response'] = $response['linkedin']; } else { $this->data['status'] = FALSE; // request failed } } else { // user isn't connected } break; } } catch (LinkedInException $e) { // exception raised by library call $e->getMessage(); } $this->data['invitation_key'] = array('name' => 'invitation_key', 'id' => 'invitation_key', 'value' => $this->data['invitation_key_val'], 'type' => 'hidden'); $this->data['first_name'] = array('name' => 'first_name', 'id' => 'first_name', 'type' => 'text', 'value' => $this->form_validation->set_value('first_name'), 'placeholder' => 'First Name', 'required' => 'required'); $this->data['last_name'] = array('name' => 'last_name', 'id' => 'last_name', 'type' => 'text', 'value' => $this->form_validation->set_value('last_name'), 'placeholder' => 'Last Name', 'required' => 'required'); $this->data['email'] = array('name' => 'email', 'id' => 'email', 'type' => 'text', 'value' => $this->data['email_val'], 'placeholder' => 'Email', 'required' => 'required', 'readonly' => 'readonly'); $this->data['password'] = array('name' => 'password', 'id' => 'password', 'type' => 'password', 'value' => $this->form_validation->set_value('password'), 'placeholder' => 'Password', 'required' => 'required'); $this->data['password_confirm'] = array('name' => 'password_confirm', 'id' => 'password_confirm', 'type' => 'password', 'value' => $this->form_validation->set_value('password_confirm'), 'placeholder' => 'Confirm Password', 'required' => 'required'); // Render View //$this->load->view('auth/create_user', $this->data); $this->data['main_content'] = '/auth/signup'; $this->load->view('includes/tmpl_singlebox', $this->data); }
private function pullLinkedInData() { /** * Helper function that checks to see that we have a 'set' $_SESSION that we can * use for the demo. */ function oauth_session_exists() { if (is_array($_SESSION) && array_key_exists('oauth', $_SESSION)) { return TRUE; } else { return FALSE; } } try { session_start(); // display constants $API_CONFIG = array('appKey' => $this->config->item('linkedin_appKey', 'linkedin_oauth'), 'appSecret' => $this->config->item('linkedin_appSecret', 'linkedin_oauth'), 'callbackUrl' => NULL); define('CONNECTION_COUNT', 20); define('PORT_HTTP', '80'); define('PORT_HTTP_SSL', '443'); define('UPDATE_COUNT', 10); // set index $_REQUEST[LINKEDIN::_GET_TYPE] = isset($_REQUEST[LINKEDIN::_GET_TYPE]) ? $_REQUEST[LINKEDIN::_GET_TYPE] : ''; switch ($_REQUEST[LINKEDIN::_GET_TYPE]) { case 'initiate': // check for the correct http protocol (i.e. is this script being served via http or https) if (!empty($_SERVER['HTTPS'])) { $protocol = 'https'; } else { $protocol = 'http'; } // set the callback url $API_CONFIG['callbackUrl'] = $protocol . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != PORT_HTTP || $_SERVER['SERVER_PORT'] != PORT_HTTP_SSL ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'] . '?' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; $OBJ_linkedin = new LinkedIn($API_CONFIG); // check for response from LinkedIn $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn hasn't sent us a response, the user is initiating the connection // send a request for a LinkedIn access token $response = $OBJ_linkedin->retrieveTokenRequest(); if ($response['success'] === TRUE) { // store the request token $_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; // redirect the user to the LinkedIn authentication/authorisation page to initiate validation. header('Location: ' . LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); } else { // bad token request echo "Request token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } else { // LinkedIn has sent a response, user has granted permission, take the temp access token, the user's secret and the verifier to request the user's real secret key $response = $OBJ_linkedin->retrieveTokenAccess($_SESSION['oauth']['linkedin']['request']['oauth_token'], $_SESSION['oauth']['linkedin']['request']['oauth_token_secret'], $_GET['oauth_verifier']); if ($response['success'] === TRUE) { // the request went through without an error, gather user's 'access' tokens $_SESSION['oauth']['linkedin']['access'] = $response['linkedin']; // set the user as authorized for future quick reference $_SESSION['oauth']['linkedin']['authorized'] = TRUE; // pulling everything in LinkedIn $fields = "id," . "first-name," . "last-name," . "headline," . "location," . "industry," . "distance," . "relation-to-viewer," . "current-share," . "connections," . "num-connections," . "num-connections-capped," . "summary," . "specialties," . "proposal-comments," . "associations," . "honors," . "interests," . "positions," . "publications," . "patents," . "languages," . "skills," . "certifications," . "educations," . "three-current-positions," . "three-past-positions," . "num-recommenders," . "recommendations-received," . "phone-numbers," . "im-accounts," . "twitter-accounts," . "date-of-birth," . "main-address," . "member-url-resources," . "picture-url," . "site-standard-profile-request," . "api-public-profile-request," . "site-public-profile-request," . "api-standard-profile-request," . "public-profile-url"; $info = $OBJ_linkedin->profile('~:(' . $fields . ')'); if ($info['success'] === TRUE) { // store user's data in database $info['linkedin'] = new SimpleXMLElement($info['linkedin']); $linkedin_data = $info['linkedin']->asXML(); //Logger::log($linkedin_data); if ($this->linkedin_model->insertLinkedInDataForCurrentUser($linkedin_data)) { //echo 'Your profile has been synchronized with Linkedin! Redirecting...'; redirect('user/profile', 'refresh'); } else { echo 'Error occurred! Please try again later.'; } } else { // profile retrieval failed echo "Error retrieving profile information:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($info) . "</pre>"; } } else { // bad token access echo "Access token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($OBJ_linkedin, TRUE) . "</pre>"; } } break; default: // [BH] BAD CODING! // SHOULDN'T ECHO ANYTHING IN CONTROLLERS. //echo 'Error: No page found!'; break; } } catch (LinkedInException $e) { // exception raised by library call echo $e->getMessage(); } }
*/ //tjek den korrekte HTTP-protokol(dvs. at dette script bliver serveret via http eller https) if ($_SERVER['HTTPS'] == 'on') { $protocol = 'https'; } else { $protocol = 'http'; } // Indstille tilbagekalds url (adresse) $API_CONFIG['callbackUrl'] = $protocol . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != PORT_HTTP || $_SERVER['SERVER_PORT'] != PORT_HTTP_SSL ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'] . '?' . LINKEDIN::_GET_TYPE . '=initiate&' . LINKEDIN::_GET_RESPONSE . '=1'; $SimpleLI = new LinkedIn($API_CONFIG); // Tjek svar fra LinkedIn $_GET[LINKEDIN::_GET_RESPONSE] = isset($_GET[LINKEDIN::_GET_RESPONSE]) ? $_GET[LINKEDIN::_GET_RESPONSE] : ''; if (!$_GET[LINKEDIN::_GET_RESPONSE]) { // LinkedIn har ikke sendt et svar, brugeren indleder forbindelsen // Send en anmodning om en LinkedIn adgangs token $response = $SimpleLI->retrieveTokenRequest(); if ($response['success'] === TRUE) { // Opbevar anmodningen token $_SESSION['oauth']['linkedin']['request'] = $response['linkedin']; // Omdirigere brugeren til LinkedIn-godkendelse / autorisation side at iværksætte validering. header('Location: ' . LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']); } else { // Dårlig token anmodning (afvist) echo "Request token retrieval failed:<br /><br />RESPONSE:<br /><br /><pre>" . print_r($response, TRUE) . "</pre><br /><br />LINKEDIN OBJ:<br /><br /><pre>" . print_r($SimpleLI, TRUE) . "</pre>"; } } else { // LinkedIn har sendt et svar, brugeren har givet tilladelse, tage midlertidig adgang til token, brugerens hemmelige og valideret at anmode brugerens reelle hemmelige nøgle $response = $SimpleLI->retrieveTokenAccess($_SESSION['oauth']['linkedin']['request']['oauth_token'], $_SESSION['oauth']['linkedin']['request']['oauth_token_secret'], $_GET['oauth_verifier']); if ($response['success'] === TRUE) { // Anmodningen gik igennem uden fejl, indsamler brugers adgang 'tokens $_SESSION['oauth']['linkedin']['access'] = $response['linkedin'];