Запрос API для пользовательских данных LinkedIn всегда возвращает 401 - PullRequest
0 голосов
/ 16 июня 2019

Я создаю серверную часть (API) мобильного приложения на ядре asp.net. Использование Swagger для визуализации вызовов API и так далее. В настоящее время я создаю внешние аутентификации, у меня есть некоторые проблемы с LinkedIn.

Структура приложения проста: мобильная сторона получает токен доступа пользователя LinkedIn и отправляет его мне с помощью API-запроса. Я должен запросить данные пользователя у LinkedIn по полученному токену доступа, зарегистрировать его или войти в систему и вернуть ответ на мобильный телефон. боковая сторона.

Ниже приведен код и прокомментированные ссылки, по которым я пытался отправлять запросы.

    public async Task<IResponse<LinkedInAuthenticationResponse>> LinkedInAuthentication(string accessToken)
    {
        using (var httpClient = new HttpClient())
        {
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
            httpClient.DefaultRequestHeaders.Add("x-li-format", "json");
            var oauthUrl = "https://api.linkedin.com/v1/people";

            // https://api.linkedin.com/v2/me
            // https://api.linkedin.com/v1/people/~:(id,formatted-name,email-address,picture-url)

            var response = httpClient.GetAsync(oauthUrl).Result;
            string responseContent = string.Empty;
            try
            {
                responseContent = await response.Content.ReadAsStringAsync();
                response.EnsureSuccessStatusCode();
                return Ok(JsonConvert.DeserializeObject<GoogleAuthenticationResponse>(responseContent));
            }
            catch (Exception ex)
            {
            }
        }
    }

Проблема в том, что LinkedIn не предоставляет точную ссылку, куда следует отправлять вызов API, мне пришлось попробовать несколько из них, но ответ всегда 401.

Мой токен доступа действителен, это не может быть проблемой. Я использовал почти одинаковый код для Facebook и Google, и они отлично работают.

Кто-нибудь может предоставить ссылку, которая работает для вызовов API?

1 Ответ

0 голосов
/ 17 июня 2019

Эта проблема не имеет ничего общего с платформой asp.net, но с конечной точкой, которую вы используете.Поскольку v1 API-интерфейса LinkedIn устарел, вам необходимо изменить конечную точку, как для эта ссылка здесь

...