【发布时间】:2019-10-30 10:46:40
【问题描述】:
我正在 asp.net 核心上构建移动应用程序的后端 (API)。使用 swagger 实现 API 调用的可视化等。目前我正在创建外部身份验证,LinkedIn 有一些问题。
应用程序的结构很简单,移动端获取LinkedIn用户的Access Token并通过API请求发送给我,我必须通过接收到的Access Token向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 调用的链接吗?
【问题讨论】:
-
此问题与
asp.net框架无关,但与您正在使用的端点有关。由于 LinkedIn API 的 v1 已被弃用,您需要将端点更改为 this link here
标签: asp.net asp.net-core oauth-2.0 linkedin-api