我目前正在使用LinkedIn OAuth 2.0开发者API制作一个LinkedIn应用,权限是 r_liteprofile
& r_emailaddress
(添加到我的应用程序的产品包括 Share on LinkedIn
& Sign In with LinkedIn
).
最近用这个GET API检索到的个人资料图片(根据LinkedIn自己的开发者文档)。
https://api.linkedin.com/v2/me?projection=(id,firstName,lastName,localizedFirstName,localizedLastName,profilePicture(displayImage~:playableStreams))
已经开始返回 403 - Forbidden
.
完整的错误信息。
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>403 - Forbidden</title>
</head>
<body>
<h1>403 - Forbidden</h1>
</body>
</html>
或
错误 Access Denied
例如
Access Denied
You don't have permission to access "http://media-exp1.licdn.com/dms/image/C4E03AQHE3A16fLv1kQ/profile-displayphoto-shrink_800_800/0?" on this server.
Reference #18.2e5c7a5c.1589838983.25cfca02
这个网址给我 Access Denied
当不使用VPN时,以及 403 - Forbidden
当使用VPN时。
这告诉我,如果我直接访问这个URL几次,我的IP地址就会被记录下来,一些安全机制就会踢进来。
然而大约在两个月前,我可以直接从我的应用中链接到这个个人资料图片URL,并且可以正常加载。
如果LinkedIn做了一些改变,我不能再链接到个人资料图片URL--我还能如何访问用户的个人资料图片?
如果您能提供任何帮助,我将非常感激!
检查 identifierExpiresInSeconds
的标识符。你可以在文档中看到这个字段。https:/docs.microsoft.comen-uslinkedinsharedreferencesv2profileprofile-picture#profile-api-sample-response。
我创建了一个Linkedin应用来测试这个,它对我来说工作得很好。我也可以从不同的IP访问个人资料图片。我得到的响应有一个 identifierExpiresInSeconds
的 1596067200
从提出请求到现在正好两个月。
这与您对问题的描述相符--两个月前还能正常工作。现在你的标识符似乎已经过期了,你需要再执行一次API调用来获取一个有效的图片标识符。你需要执行另一个API调用来获得一个有效的图片标识符。