curl获取Linkedin访问令牌时出错


Error with curl getting Linkedin Acces Token

我需要从Linkedin显示我的公司更新,所以我已经创建了一个Linkedin应用程序。我需要在Linkedin中与我的应用程序进行OAuth2认证,而不是访问我网站的用户。

我试着用curl获得访问令牌,但我总是得到这个错误:

字符串(153){"error_description":"缺少必需的参数,包含无效的参数值,参数不止一次。:client_id"、"错误":"invalid_request"}"

我的代码是:
$code = isset($_REQUEST['code'])?$_REQUEST['code']:"";                
        $curl_request = curl_init();
        curl_setopt_array($curl_request, array(
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_URL => "https://www.linkedin.com/uas/oauth2/accessToken",
            CURLOPT_POST => 1,
            CURLOPT_HTTPHEADER => array('Content-Type: application/x-www-form-urlencoded'),
            CURLOPT_POSTFIELDS => array(
                grant_type => "authorization_code",
                code => $code,
                redirect_uri => LINKEDIN_CALLBACK_URL,
                client_id => LINKEDIN_API_KEY,
                client_secret =>  LINKEDIN_API_SECRETE_KEY
            )
        ));
        $curl_result = curl_exec($curl_request);
        var_dump($curl_result);

LinkedIn的OAuth 2.0实现目前不支持两条腿的身份验证。您将必须与特定的成员进行身份验证-无论是当前活跃的用户,还是您自己的帐户,您只需验证一次,然后静默地重复使用该访问令牌,并每60天更新一次,以防止它过期。

也就是说,您的错误似乎与您没有正确地制定从LinkedIn获得accessToken的请求有关,因为client_id参数未被识别。浏览OAuth 2.0文档,确保在整个身份验证过程中正确格式化了HTTP请求:https://developer.linkedin.com/docs/oauth2