Search code examples
cakephplinkedin-api

linkedin Import Resume is not working ( keeps Loading )


I do have website of cakephp framwork & integrated with linkedin api. website do have import resume functionality and stores user details(imported from linkedin) in edit profile page.

I have indexController and its action is something like this:-

public function linkedinlogin()
    {
        if (isset($_GET['oauth_problem']))
        {
            if (isset($_SESSION['requestToken']))
            {
                unset($_SESSION['requestToken']);
            }
            if (isset($_SESSION['oauth_verifier']))
            {
                unset($_SESSION['oauth_verifier']);
            }
            if (isset($_SESSION['oauth_access_token']))
            {
                unset($_SESSION['oauth_access_token']);
            }
            $this->redirect("registration");
            exit;
        }
        //$this->autoRender = false;

        if (session_status() == PHP_SESSION_NONE)
        {
            session_start();
        }
        $this->set('PageHeading', __('Linkedin Login'));
        $config['base_url'] = 'http://upitchnew.inheritxserver.net/index/registration';
        if (isset($_SESSION['user_id']))
        {
            $config['callback_url'] = 'http://upitchnew.inheritxserver.net/index/linkedinlogin?tc_id=' . $_SESSION['user_id'] . '&tc_id1=' . $_SESSION['user_ids'];
        }
        else
        {
            $config['callback_url'] = 'http://upitchnew.inheritxserver.net/index/linkedinlogin?tc_id=' . $_REQUEST['tc_id'] . '&tc_id1=' . $_REQUEST['tc_id1'];
        }
        $config['linkedin_access'] = 'linkedin_access';//LinkdingAccess key
        $config['linkedin_secret'] = 'linkedin_secret';//Linkdin Scret key

        //=require('../Vendor/linkedin/OAuth.php');
        require('../Vendor/linkedin/linkedin.php');


        # First step is to initialize with your consumer key and secret. We'll use an out-of-band oauth_callback
        $linkedin = new LinkedIn($config['linkedin_access'], $config['linkedin_secret'], $config['callback_url']);

        if (isset($_REQUEST['oauth_verifier']))
        {
            $_SESSION['oauth_verifier'] = $_REQUEST['oauth_verifier'];
            if (isset($_SESSION['requestToken']))
            {
                $linkedin->request_token = unserialize($_SESSION['requestToken']);
            }
            $linkedin->oauth_verifier = $_SESSION['oauth_verifier'];
            $linkedin->getAccessToken($_REQUEST['oauth_verifier']);

            $_SESSION['oauth_access_token'] = serialize($linkedin->access_token);

            $this->redirect($config['callback_url']);
            //header("Location: " . $config['callback_url']);
            exit();
        }
        else
        {
            if (isset($_SESSION['requestToken']) && $_SESSION['requestToken'] != '')
            {
                if (isset($_SESSION['oauth_access_token']) && $_SESSION['oauth_access_token'] != '')
                {
                    $linkedin->request_token  = unserialize($_SESSION['requestToken']);
                    $linkedin->oauth_verifier = $_SESSION['oauth_verifier'];
                    $linkedin->access_token   = unserialize($_SESSION['oauth_access_token']);
                }
                else
                {
                    //$linkedin->debug = true;
                    $linkedin->getRequestToken();
                    $_SESSION['requestToken'] = serialize($linkedin->request_token);

                    $this->redirect($linkedin->generateAuthorizeUrl());
                    //  echo '<script>window.location.href="'.$linkedin->generateAuthorizeUrl().'"</script>';
                    //header("Location: " . $linkedin->generateAuthorizeUrl());
                    exit();
                }
            }
            else
            {
                //$linkedin->debug = true;
                $linkedin->getRequestToken();
                $_SESSION['requestToken'] = serialize($linkedin->request_token);
                $this->redirect($linkedin->generateAuthorizeUrl());
                //echo '<script>window.location.href="'.$linkedin->generateAuthorizeUrl().'"</script>';
                //header("Location: " . $linkedin->generateAuthorizeUrl());
                exit();
            }
        }
}

This action has called once you click on import resume button, Instead of loading login with linkedin page, a page keeps loading and do not redirect to (linkedin)login page.

generateAuthorizeUrl() has called meanwhile:-

$_SESSION['requestToken'] = serialize($linkedin->request_token);
$this->redirect($linkedin->generateAuthorizeUrl());

generateAuthorizeUrl function is something like this:-

function generateAuthorizeUrl()
    {
        if (isset($_SESSION['user_id']))
        {
            $this->user_id = $_SESSION['user_id'];
        }
        if (isset($_SESSION['user_ids']))
        {
            $this->user_ids = $_SESSION['user_ids'];
        }
        $consumer      = $this->consumer;
        $request_token = $this->request_token;
        return $this->authorize_path . "?oauth_token=" . $request_token->key . "&tc_id=" . $this->user_id . "&tc_id1=" . $this->user_ids;
    }

Any help would be appreciated.


Solution

  • Man!! sucks! It was firewall issue linkedin is using https://api.linkedin.com/uas/oauth/authorize?oauth_token=auth_token url while processing with importing user details! and that url was blocked via Sophos securities.

    So it neither showing any error or anything else just keeps loading..

    Issue Resolved.