linkedin导入恢复无效(继续加载)

时间:2016-02-11 05:32:33

标签: cakephp linkedin-api

我确实有website的cakephp framwork&与linkedin api集成。网站确实具有导入恢复功能,并在编辑个人资料页面中存储用户详细信息(从linkedin导入)。

我有indexController,它的动作是这样的: -

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();
            }
        }
}

此操作在您单击导入恢复按钮后调用,而不是使用linkedin页面加载登录,页面将继续加载,不会重定向到(linkedin)登录页面。

generateAuthorizeUrl()同时调用: -

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

generateAuthorizeUrl函数是这样的: -

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;
    }

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

曼!!太差劲了!防火墙问题是在使用导入用户详细信息进行处理时使用https://api.linkedin.com/uas/oauth/authorize?oauth_token=auth_token url的防火墙问题!那个网址被Sophos证券封锁了。

所以它既没有显示任何错误,也没有任何其他错误继续加载..

问题已解决。