我正在asp.net核心上构建移动应用程序的后端(API)。使用摇摇欲坠来可视化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调用的链接吗?