У меня в настоящее время возникают проблемы с получением Token LinkedIn.LinkedIn Get Token возвращает HTTP 1.1 400 - ошибка с неправильным запросом
Я сейчас в сети developers documentation in order to get through authentication.
Я также использую this sample в качестве базового кода
Однако, после того, как я получаю в процессе авторизации, в котором я получаю аутентификацию-коду, процесс получения маркеров для пользователя не удается, с Bad Request Error (400)
Вот модифицированный код страницы образца (Примечание: комментируемой части мы предыдущие attemps я сделал, прежде чем перейти к Curl)
public function getAccessToken() {
$params = array('grant_type' => 'authorization_code',
'client_id' => API_KEY,
'client_secret' => API_SECRET,
'code' => $_GET['code'],
'redirect_uri' => REDIRECT_URI.'/linkedin/auth',
);
// Access Token request
$url = urldecode('https://www.linkedin.com/uas/oauth2/accessToken?'.http_build_query($params));
//header("Content-length: ".strlen($url));
// Tell streams to make a POST request
echo $url;
/*$context = stream_context_create(
array('http' =>
array('method' => 'POST',
)
)
);*/
/*$context = stream_context_create(
array('http' =>
array('method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query($params))
)
);
// Retrieve access token information
$response = file_get_contents($url, FALSE, $context);*/
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST,1);
$response = curl_exec($ch);
curl_close($ch);
$token = json_decode($response);
echo json_decode($response);
// Store access token and expiration time
$_SESSION['access_token'] = $token->access_token; // guard this!
$_SESSION['expires_in'] = $token->expires_in; // relative time (in seconds)
$_SESSION['expires_at'] = time() + $_SESSION['expires_in']; // absolute time
return true;
}
забыл упомянуть, что, то echo $url;
часть, выводит URL, что, когда вставлена вручную в браузере, генерирует действительный маркера пользователя
Вы пытаетесь 'urlencode' кода и redirect_uri параметров? –
@Yan Да, я сделал. Результат был тот же. Плохой запрос при получении ответа, но, вручную вставляя URL-адрес в браузере, работает так, как ожидалось, поскольку это ответ JSON с меткой истечения срока действия и токеном доступа. –
Вы пытались отправить его как 'GET' вместо' POST'? –