linkedin-api - 从 SharePoint 2013 Web 部件访问linkedIn 2.0 API 时出现 403 禁止错误
问题描述
API:https://api.linkedin.com/v2/me?projection=(id,firstName,lastName)
应用权限:r_basicprofile、r_emailaddress、w_share
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
string requesturl = "https://api.linkedin.com/v2/me?projection=(id,firstName,lastName)";
HttpWebRequest webRequest = System.Net.WebRequest.Create(requesturl) as HttpWebRequest;
webRequest.Method = "GET";
webRequest.Host = "api.linkedin.com";
//webRequest.ContentType = "application/x-www-form-urlencoded";
//webRequest.Connection = "Keep-Alive";
webRequest.Headers.Add("Authorization", "Bearer " + accessToken);
//Stream dataStream = webRequest.GetRequestStream();
//String postData = String.Empty;
//byte[] postArray = Encoding.ASCII.GetBytes(postData);
//dataStream.Write(postArray, 0, postArray.Length);
//dataStream.Close();
WebResponse response = webRequest.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader responseReader = new StreamReader(dataStream);
String returnVal = responseReader.ReadToEnd().ToString();
解决方案
如果您使用的是 V2 API 并且您没有获得使用 r_basicprofile 的权限,那么请向linkedin申请使用 r_basicprofile 的权限
或者对 V2 使用 r_liteprofile + r_emailaddress(还要检查您的应用程序中是否存在 r_liteprofile 权限)
r_liteprofile 用于 firstName,lastName,profilePicture,id r_emailaddress 用于获取 emailAddress
推荐阅读
- arrays - 如何将char数组的元素初始化为mips中的二维数组?
- c++ - 以下代码结构或设计实现是否具有惯用名称?
- flutter - Flutter DropdownButton 错误“RangeError (index): Invalid value: Not in range 0..10, inclusive: 11”
- javascript - 使用 jQuery 附加选项的选择值作为空白字符串返回
- html - 使页面适合移动设备时出现问题
- ios - 使用 Apple 登录:如何知道用户是否正在注册或登录
- android - FragmentTransaction 添加片段而不是替换
- python - 为什么正确的输出仍然对 CodeWars 的测试公平?
- python - 从 2 列 pandas df 构建和邻接矩阵
- javascript - 解释非零检查的性能测试