我需要从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