Я пытаюсь получить маркер доступа на API LinkedIn, но я получаю следующее сообщение об ошибке:LinkedIn API OAuth2 - Невозможно получить маркер доступа
{"error":"invalid_request","error_description":"Unable to retrieve access token: appid or redirect uri does not match authorization code or authorization code expired"}
PHP код:
Получить код авторизации (работа):
$linkedIn = array(
'clientId' => 'My id',
'redirectUri' => WEBSITE.'User/liCallback/',
'state' => 'rz5t4er6t7re68t7e6rt6ze9',
'scope' => 'r_basicprofile'
);
$liLoginUrl = 'https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id='.$linkedIn['clientId'].'&redirect_uri='.$linkedIn['redirectUri'].'?state='.$linkedIn['state'].'&scope='.$linkedIn['scope'];
Получить toekn доступа (не работает):
public function liCallback(){
$linkedin = array(
'grant_type' => 'authorization_code',
'code' => $this->get('code'),
'redirectUri' => WEBSITE.'User/liCallback/',
'client_id' => 'My id',
'client_secret' => 'My client secret'
);
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,'https://www.linkedin.com/oauth/v2/accessToken');
curl_setopt($curl_handle, CURLOPT_POST, 1);
echo curl_setopt($curl_handle, CURLOPT_POSTFIELDS, 'grant_type='.$linkedin['grant_type'].'&code='.$this->get('code').'&redirect_uri='.urlencode($linkedin['redirectUri']).'&client_id='.$linkedin['client_id'].'&client_secret='.$linkedin['client_secret']);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'x-www-form-urlencoded');
$query = curl_exec($curl_handle);
var_dump($query);
curl_close($curl_handle);
}
Я пытаюсь использовать encodeurl(), но у меня такая же ошибка. Я пытаюсь с file_get_content(), но у меня ошибка 400.
Спасибо за помощь!
Кто-нибудь может мне помочь? – mdck
Вверх? Кто-нибудь может мне помочь? – mdck
'file_get_content()' не будет работать, поскольку linkedin требует дополнительного заголовка, который нельзя установить на 'file_get_content()' –