我正在尝试以下请求:
GET https://api.linkedin.com/v2/people/(id:urn:li:person:<person id>)?oauth2_access_token=<token>&projection=(results*(localizedFirstName,vanityName))
但是我总是得到一个:
{
"serviceErrorCode": 100,
"message": "Unpermitted fields present in RESOURCE_KEY: Data Processing Exception while processing fields [/memberId]",
"status": 403
}
如果我尝试使用其他API来做到这一点:
GET https://api.linkedin.com/v2/people?ids=List((id:urn:li:person:<person id>))&oauth2_access_token=<token>&projection=(results*(localizedFirstName,vanityName))
返回内部服务器错误:
{
"message": "Internal Server Error",
"status": 500
}
我正在使用Google Chrome浏览器执行这些请求。
我也尝试过使用邮递员。
标题:
X-Restli-Protocol-Version: 2.0.0
Authorization: Bearer <token>
知道:
{
"serviceErrorCode": 0,
"message": "Syntax exception in path variables",
"status": 400
}
我的应用权限为:
我尝试了其他API(socialActivity,ugcPosts),一切看起来都很好。
我在https://www.linkedin.com/developers/apps/<id>/usage
处检查了API的使用情况,而people
的使用情况目前为0%。
经过测试的用户个人资料也是公开的。
答案 0 :(得分:2)
id参数仅需要person_id,但您要提供urn。尝试使用此https://api.linkedin.com/v2/people/(id:person_id),并且不要忘记在进行调用时在标题中包含X-RestLi-Protocol-Version:2.0.0。
答案 1 :(得分:2)
您应该只使用id(而不是urn)。而且字段投影错误:
使用:
projection=(localizedFirstName,vanityName)
代替:
projection=(results*(localizedFirstName,vanityName))
例如:
curl -H "X-Restli-Protocol-Version: 2.0.0" \
"https://api.linkedin.com/v2/me?oauth2_access_token=<TOKEN>&projection=(id)"
会回来
{
"id": <ID>
}
并将其用作:
curl -H "X-Restli-Protocol-Version: 2.0.0" \
"https://api.linkedin.com/v2/people/(id:<ID>)?oauth2_access_token=<TOKEN>&projection=(localizedFirstName,vanityName)"
所以:
{
"vanityName": "<VANITY-NAME>",
"localizedFirstName": "<NAME>"
}
希望获得帮助