Я создаю серверную часть (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?