大家好我正在使用LinkedIn API并试图提出请求,但当我尝试获取我的accessstoken时,我的json打印中出现以下错误:
Array ( [error] => missing_parameter [error_description] => A required parameter "client_id" is missing )
这是我的代码:
<?php
$url = parse_url("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
parse_str($url['query'], $url);
$code = $url['code'];
$data = array("grant_type" => "authorization_code",
"code" => $code,
"redirect_uri" => "REDIRECT_URI",
"client_id" => "SECRET",
"client_secret" => "SECRET"
);
$url2 = "https://www.linkedin.com/oauth/v2/accessToken";
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_URL, $url2);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
$result_array = json_decode($result, true);
print_r($result_array);
include('../twitter/navigatie.php');
echo '<div class="container">';
echo '';
echo '</div>';
?>
答案 0 :(得分:4)
我发现了问题
它需要在一个字符串中。
所以这个:
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
成了这个:
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
Curl或LinkedIn似乎对此很敏感。