Какой правильный формат и последовательность для получения правильного токена для LinkedIn API V2? - PullRequest
0 голосов
/ 26 мая 2019

Наше приложение LinkedIn больше не работает с развитием V2.Я попытался пару раз и не смог создать правильный токен.Я ищу помощь в создании правильной ссылки авторизации для получения токена.В настоящее время ошибка приложения - «Пустой токен доступа oauth2»

Я создал новое приложение LinkedIn, чтобы заменить старое.Я пытался следовать инструкциям LinkedIn и Microsoft, но мои усилия привели к следующей ошибке

Моя последняя попытка была:

https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=78xaqf0ereiisy&redirect_uri=https://www.gachina.com&state=gachina&scope=r_emailaddress r_liteprofile w_member_social

Я получил: https://www.gachina.com/?code=AQS65Njp1F9-L-mKSrAJKZeQ-ij2OX7wboTc30-hrfQIwwJ0yfWd4FBqxLl-ZXHmL5HurKud4t9WcGeHB62EfPNcy3ddoqT1LztUHhR59iL-Q8f9WLrX03d9e3OCTmY-3vR8a_4ENeIN0GFpeLy7DKRDmuUNcQ82UwScqhApdtwzEBw-_Y0duYG87Lc1KQ&state=gachina

, затем я использовал формат, показанный здесь:

https://docs.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow

https://www.linkedin.com/oauth/v2/accessToken?grant_type=authorization_code&code={authorization_code_from_step2_response}&redirect_uri=hhttps%3A%2F%2Fdev.example.com%2Fauth%2Flinkedin%2Fcallback&client_id={your_client_id}&client_secret={your_client_secret}

с

https://www.linkedin.com/oauth/v2/accessToken?grant_type=authorization_code&code=AQS65Njp1F9-L-mKSrAJKZeQ-ij2OX7wboTc30-hrfQIwwJ0yfWd4FBqxLl-ZXHmL5HurKud4t9WcGeHB62EfPNcy3ddoqT1LztUHhR59iL-Q8f9WLrX03d9e3OCTmY-3vR8a_4ENeIN0GFpeLy7DKRDmuUNcQ82UwScqhApdtwzEBw-_Y0duYG87Lc1KQ&redirect_uri=https://www.gachina.com/auth/Linkedin/callback&client_id=78xaqf0ereiisy&client_secret={client_secret}

но я получаю следующее при отправке вышеуказанной ссылки с нашим {секретом клиента} на месте

{"error":"invalid_redirect_uri","error_description":"Unable to retrieve access token: appid/redirect uri/code verifier does not match authorization code. Or authorization code expired. Or external member binding exists"}

Я делаю все этов течение нескольких минут.Поэтому я не верю, что срок действия кода истек.

Можете ли вы помочь определить ошибку шагов или кода для получения токена?

1 Ответ

0 голосов
/ 28 мая 2019

Это вернет токен доступа

$params = array('grant_type' => 'authorization_code',
            'client_id' => $this->api_key,
            'client_secret' => $this->api_secret,
            'code' => $_GET['code'],
            'redirect_uri' => base_url().$this->redirect,
        );
        // Access Token request
        $url = 'https://www.linkedin.com/oauth/v2/accessToken?' . http_build_query($params);
        $data_len = strlen(http_build_query($params));
        // Tell streams to make a POST request
        $context = stream_context_create(
                array('http' =>
                    array('method' => 'POST','header'=> 'Content-Length: 0'
                    )
                )
        );

        // Retrieve access token information
        $response = file_get_contents($url, false, $context);
        $token = json_decode($response);
        return $token->access_token;
...