一般来说,是否可以导入用户的 linkedin 职位或个人资料?
Is it possible to import a user's linkedin job title or profile in general?
我正在阅读文档,但我不是很清楚。
我想构建一个按钮,登录用户可以点击该按钮,将其重定向到 linkedin 以授予我对他们的个人资料的读取权限,然后我会取回此信息。
这有可能吗?
我正在使用 Vue + Laravel
简短回答 - 是的。就像您可以使用 Google、Twitter、Facebook 等登录一样 - 这允许您对某人的个人资料信息进行特定访问,您还可以通过 oAuth 获取某人的 LinkedIn 信息。
LinkedIn 文档在此处:https://docs.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?context=linkedin/context
这里有一个使用 Laravel 的例子:https://codebriefly.com/laravel-socialite-linkedin-login-part-2/
简而言之,您需要:
- 创建一个 LinkedIn 开发者门户帐户并在那里注册您的应用程序:https://www.linkedin.com/developers/
- 获取客户端ID和客户端Secret
- 向 https://www.linkedin.com/oauth/v2/authorization 发出 GET 请求以获取授权码
- 如果用户批准访问,您将获得授权码,您可以通过向 https://www.linkedin.com/oauth/v2/accessToken
发出 POST 请求来交换访问令牌
- 您现在可以通过使用访问令牌作为授权发出 GET 请求来获取用户的信息 header。
使用javascript:https://makitweb.com/how-to-login-linkedin-with-javascript-api/#createapp
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: 81n4hu3u7jybix
authorize: true
onLoad: onLinkedInLoad
</script>
<script type="text/javascript">
// Setup an event listener to make an API call once auth is complete
function onLinkedInLoad() {
IN.Event.on(IN, "auth", getProfileData);
}
// Logout user
function logout(){
IN.User.logout(onLogout);
}
function onLogout(){
console.log('Logout successfully');
}
// Use the API call wrapper to request the member's basic profile data
function getProfileData() {
IN.API.Profile("me").fields("first-name", "last-name", "email-address","picture-url").result(function (data) {
var userdata = data.values[0];
$.ajax({
url: "saveuser.php",
type: "post",
data: {"social_type": "linkedin","fname": userdata.firstName,"lname": userdata.lastName,"email": userdata.emailAddress, "profile_image": userdata.pictureUrl },
success: function(response){
$('#tableUser').css('display','block');
$('#fullname').text( userdata.firstName + " " + userdata.lastName);
$('#email').text( userdata.emailAddress );
$('#profile_photo').attr( 'src',userdata.pictureUrl );
logout();
}
});
}).error(function (data) {
console.log(data);
});
}
</script>
</head>
<body>
<!-- LinkedIn signin button -->
<script type="in/Login"></script>
<table id='tableUser' style='display: none;'>
<tr>
<td>Name</td>
<td><span id='fullname'></span></td>
</tr>
<tr>
<td>Email</td>
<td><span id='email'></span></td>
</tr>
<tr>
<td>Profile image</td>
<td><img src='' width='32' height='32' id='profile_photo'></td>
</tr>
</table>
</body>
</html>
我正在阅读文档,但我不是很清楚。
我想构建一个按钮,登录用户可以点击该按钮,将其重定向到 linkedin 以授予我对他们的个人资料的读取权限,然后我会取回此信息。
这有可能吗?
我正在使用 Vue + Laravel
简短回答 - 是的。就像您可以使用 Google、Twitter、Facebook 等登录一样 - 这允许您对某人的个人资料信息进行特定访问,您还可以通过 oAuth 获取某人的 LinkedIn 信息。
LinkedIn 文档在此处:https://docs.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?context=linkedin/context 这里有一个使用 Laravel 的例子:https://codebriefly.com/laravel-socialite-linkedin-login-part-2/
简而言之,您需要:
- 创建一个 LinkedIn 开发者门户帐户并在那里注册您的应用程序:https://www.linkedin.com/developers/
- 获取客户端ID和客户端Secret
- 向 https://www.linkedin.com/oauth/v2/authorization 发出 GET 请求以获取授权码
- 如果用户批准访问,您将获得授权码,您可以通过向 https://www.linkedin.com/oauth/v2/accessToken 发出 POST 请求来交换访问令牌
- 您现在可以通过使用访问令牌作为授权发出 GET 请求来获取用户的信息 header。
使用javascript:https://makitweb.com/how-to-login-linkedin-with-javascript-api/#createapp
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: 81n4hu3u7jybix
authorize: true
onLoad: onLinkedInLoad
</script>
<script type="text/javascript">
// Setup an event listener to make an API call once auth is complete
function onLinkedInLoad() {
IN.Event.on(IN, "auth", getProfileData);
}
// Logout user
function logout(){
IN.User.logout(onLogout);
}
function onLogout(){
console.log('Logout successfully');
}
// Use the API call wrapper to request the member's basic profile data
function getProfileData() {
IN.API.Profile("me").fields("first-name", "last-name", "email-address","picture-url").result(function (data) {
var userdata = data.values[0];
$.ajax({
url: "saveuser.php",
type: "post",
data: {"social_type": "linkedin","fname": userdata.firstName,"lname": userdata.lastName,"email": userdata.emailAddress, "profile_image": userdata.pictureUrl },
success: function(response){
$('#tableUser').css('display','block');
$('#fullname').text( userdata.firstName + " " + userdata.lastName);
$('#email').text( userdata.emailAddress );
$('#profile_photo').attr( 'src',userdata.pictureUrl );
logout();
}
});
}).error(function (data) {
console.log(data);
});
}
</script>
</head>
<body>
<!-- LinkedIn signin button -->
<script type="in/Login"></script>
<table id='tableUser' style='display: none;'>
<tr>
<td>Name</td>
<td><span id='fullname'></span></td>
</tr>
<tr>
<td>Email</td>
<td><span id='email'></span></td>
</tr>
<tr>
<td>Profile image</td>
<td><img src='' width='32' height='32' id='profile_photo'></td>
</tr>
</table>
</body>
</html>