asp.net - LinkedIn 用户数据的 API 请求始终返回 401
问题描述
我正在 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 已被弃用,您需要在此处更改您的端点,如此链接
推荐阅读
- python-3.x - 过期测试期间 ssl.get_server_certificate() 中的握手失败
- r - 如何删除葡萄牙语字符串的序数指示符
- python - 从外部py文件调用函数时数据框应用函数错误
- c# - DataTemplate 中仅显示列表中的最后一项
- amazon-redshift - 转换为字符串以浮动后尾随 0 小数
- python - Python NumPy 在 where 等运算符后添加 []
- python-3.x - 需要从 pyspark 中的数据框中删除重复的列
- python - Firestore 中是否有“最小”功能
- sql - 当用户是多个组的成员时,如何根据用户组过滤 APEX 网格中的数据?
- r - 对数刻度 y 轴上的两个数据集和带有标题的辅助轴上的另一个数据集