Невозможно получить код авторизации LinkedIn - PullRequest
0 голосов
/ 16 декабря 2018

Я создаю приложение, которое я буду использовать для публикации сообщений в LinkedIn.Я использую Visual Studio 2017 (asp.net MVC C #).Я уже создал приложение в LinkedIn с идентификатором клиента и секретом клиента.Я также создал асинхронную функцию GetCode () моего приложения в Visual Studio.

Эта функция делает запрос на этот URL: string url = "https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=kjahldj9384&state=DCEEFWKDHIUs5dffef424&redirect_uri=http://localhost:51272/";

Когда я запускаю приложение, и эта функция вызывается, я перенаправляюсь на страницу аутентификации LinkedIn для входаНо когда я ввожу учетные данные для входа в LinkedIn и нажимаю кнопку входа, я перехожу на эту страницу: https://www.linkedin.com/uas/login-submit, на которой отображается сообщение об ошибке:

Ошибка запроса Приносим извинения, возникла проблема с вашим запросом. Убедитесь, что у вас включены файлы cookie, и повторите попытку.

Или перейдите по этой ссылке, чтобы вернуться на домашнюю страницу. Это моя функция GetCode:

        //Get LinkedIn Code
    [HttpGet]
    [Route("api/LinkedIn/GetCode")]
    public async Task<HttpResponseMessage> GetCode()
    {
        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Content-Type", "application/x-www-form-urlencoded");

     string url = "https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=54565kggfh&state=DCEEFW55754FD5dffef424&redirect_uri=http://localhost:57313/";

            HttpResponseMessage apiResponseMsg = await client.GetAsync(new Uri(url));

            return apiResponseMsg;
        }
    }

Что-то я не так делаю?

1 Ответ

0 голосов
/ 17 декабря 2018

Во-первых, обязательно добавьте ваш redirect_uri в настройки OAuth 2.0 на портале разработчиков Linkedin (на вкладке «Аутентификация»).Если это не проблема, попробуйте ниже.

Если вы создаете тот же URL-адрес и перенаправляете на него страницу, а не используете ответное сообщение, то вас следует отправить обратно на веб-сайт с кодом в качестве параметра запроса (http://localhost:60137/?code=xxxxxxxxxxxxx).Я сделал рабочий пример с тестовым приложением:

    [HttpGet]
    public ActionResult GetCode()
    {
        //build url from config file
        string url = "https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=78z99sg1ncgbma&redirect_uri=http://localhost:60137";

        return new RedirectResult(url);
    }

Надеюсь, это поможет.

...