如何获得LinkedIn帐户的用户名

问题描述

我已经通过Oauth2协议在LinkedIn上实现了singin操作,并接收有关配置文件的响应信息,如下所示:

{
"localizedLastName": "xxxxxxx","profilePicture": {
    "displayImage": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},"firstName": {
    "localized": {
        "fr_FR": "xxxxxxxxxxxx"
    },"id": "xxxxxxxx",....
 }

但是在我的用例中,我需要存储一个唯一的用户名,我认为我只能从个人资料链接 https://www.linkedin.com/in/xxxxxx-xxxxxx-889031a0/
检索它。 那么如何获取此个人资料链接

解决方法

我认为您正在寻找Profile API中的doc中的vanityName

vanityName:成员的虚荣名称。代表虚荣名字 作为字符串用于公开个人资料网址: www.linkedin.com/in/{vanityName}

因此,您可以对请求字段上的投影使用以下卷曲:

curl -H "Authorization: Bearer <auth-token>" \
"https://api.linkedin.com/v2/me?projection=(localizedFirstName,vanityName)"

将返回:

{
  "vanityName": "bsmith","localizedFirstName": "Bob"
}

应用权限

再次检查您的应用是否至少具有basicprofile权限(OAuth 2.0范围):默认的lite-profile是不够的。因此,请参见“应用范围控制台” https://www.linkedin.com/developers/apps/<app-id>/auth中的至少一项内容:

r_basicprofile:使用您的基本个人资料,包括您的姓名,照片, 标题和公开个人资料网址