Linkedin - код авторизации Exchange для токена запроса

1

Я пытаюсь обменять код аутентификации для токена запроса с помощью linkedin API. Однако я стараюсь, чтобы я всегда получал ошибку:

{["error_description"] => строка (107) "Отсутствующие требуемые параметры, включает недопустимое значение параметра, параметр более одного раза.: client_secret" ["error"] => string (15) "invalid_request"}

Мой код выглядит так:

 public function authorization($authCode)
    {
        //define enviroment and path
        $host = "https://www.linkedin.com/uas/oauth2/accessToken";

        // Generate urlencode data
        $data_string = 'grant_type=authorization_code';
        $data_string .= '&code='.$authCode;
        $data_string .= '&redirect_uri='.redirectUrl;
        $data_string .= '&client_id='.publicKey;
        $data_string .= '&client_secret'.secretKey;
        var_dump($data_string);


        // set up the curl resource
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $host);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_VERBOSE, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/x-www-form-urlencoded',
        ));

        // execute the request
        $output = curl_exec($ch);

        //echo($output) . PHP_EOL;
        $output = json_decode($output);
        var_dump($output);

        echo $output->access_token;

        // close curl resource to free up system resources
        curl_close($ch);
    }

простой вызов fuction:

if(!empty($_GET['code']))
{
    $state = $_GET['state'];
    $authCode = $_GET['code'];
    $LinkedIn->authorization($authCode);
}

Я пытаюсь сделать этот ЗАПРОС, используя мои данные через почтальона, и я получаю доступ к токену успешно, поэтому у меня есть ошибка, которую я не вижу.

Это кто-нибудь, кто может мне посоветовать, что я делаю неправильно? благодаря

Теги:
linkedin

1 ответ

3
Лучший ответ

Я думаю, вам нужно поставить знак "равный" после client_secret

$data_string .= '&client_id='.publicKey;
$data_string .= '&client_secret='.secretKey;
var_dump($data_string);
  • 0
    И поставьте $ перед именем переменной, иначе они будут интерпретироваться как константы
  • 0
    Привет, Федерико, они константы, это нормально, но я чувствую, что мне очень скучно пропустить это «равно». Спасибо @littlebex
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню