API 为 r_basicprofile 调用 #LinkedIn
API calls #LinkedIn for r_basicprofile
我仔细阅读了关于 API 调用的 LinkedIn 开发人员文档,根据文档,我能够请求访问代码,与服务器交换它并设法获得访问令牌。
之后,我使用 json 格式的访问令牌和以下代码设法获取了一些会员的个人资料。
$api_url = 'https://api.linkedin.com/v1/people/~:(id,first-name,last-name,email-address)?format=json';
$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Bearer " . $accessToken
),
));
$result = file_get_contents($api_url, false, $context);
echo $result;
但是问题是:尝试进行任何不同的调用都会失败,尽管它们是根据 LinkedIn 的文档并且允许 r_basicprofile,但是错误:
Warning:
file_get_contents(https://api.linkedin.com/v2/people/~:(industryId~)?format=json):
failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
我尝试了以下一些方法,但都不对
$api_url = 'https://api.linkedin.com/v2/me';
$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Bearer " . $accessToken
),
));
$result = file_get_contents($api_url, false, $context);
echo $result;
我什至尝试使用以下 GET 请求获取成员的个人资料,但返回了相同的 403。
https://api.linkedin.com/v2/people/(id:{person ID})
https://api.linkedin.com/v2/people/(id:{profileID})?projection=(id,firstName,lastName,industryId~)
希望了解如何进行这些调用,以及有什么问题。
问题是 V2 api 需要您与 linkedin 建立合作关系。这意味着您收到 403 禁止错误。
Partnering with LinkedIn provides you with additional API
functionality & data access, increased call limits & dedicated
support. Read more about our various Partner Programs and use cases
and see if one is a match for your app. Applications are only accepted
when we feel that they're providing value to members, developers and
LinkedIn.
来源: https://developer.linkedin.com/partner-programs
幸运的是,您需要 api 的 V1 版本。
https://api.linkedin.com/v1/people/{ID}?format=json
将您的 LinkedIN JS SDK 添加到您的站点,应该如下所示:
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: <!-- YOUR CLIENT ID (API KEY) HERE -->
onLoad: LinkedINJSAPI.onLoad
authorize: true
credentials_cookie: true
credentials_cookie_crc: true
</script>
然后在您的JavaScript中添加以下内容:
var LinkedINJSAPI = {
onLoad: function(){
IN.User.authorize(LinkedINJSAPI.request, this );
},
request: function(){
var url = 'people/~:(firstName,lastName,emailAddress,positions,location)?format=json';
IN.API.Raw(url).
method('GET').
result(function(result){
console.log( JSON.stringify( result ) );
}).
error(function(error){
console.error( error.message );
});
}
}
您可以在此处查看工作演示...
我仔细阅读了关于 API 调用的 LinkedIn 开发人员文档,根据文档,我能够请求访问代码,与服务器交换它并设法获得访问令牌。
之后,我使用 json 格式的访问令牌和以下代码设法获取了一些会员的个人资料。
$api_url = 'https://api.linkedin.com/v1/people/~:(id,first-name,last-name,email-address)?format=json';
$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Bearer " . $accessToken
),
));
$result = file_get_contents($api_url, false, $context);
echo $result;
但是问题是:尝试进行任何不同的调用都会失败,尽管它们是根据 LinkedIn 的文档并且允许 r_basicprofile,但是错误:
Warning: file_get_contents(https://api.linkedin.com/v2/people/~:(industryId~)?format=json): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
我尝试了以下一些方法,但都不对
$api_url = 'https://api.linkedin.com/v2/me';
$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Bearer " . $accessToken
),
));
$result = file_get_contents($api_url, false, $context);
echo $result;
我什至尝试使用以下 GET 请求获取成员的个人资料,但返回了相同的 403。
https://api.linkedin.com/v2/people/(id:{person ID})
https://api.linkedin.com/v2/people/(id:{profileID})?projection=(id,firstName,lastName,industryId~)
希望了解如何进行这些调用,以及有什么问题。
问题是 V2 api 需要您与 linkedin 建立合作关系。这意味着您收到 403 禁止错误。
Partnering with LinkedIn provides you with additional API functionality & data access, increased call limits & dedicated support. Read more about our various Partner Programs and use cases and see if one is a match for your app. Applications are only accepted when we feel that they're providing value to members, developers and LinkedIn.
来源: https://developer.linkedin.com/partner-programs
幸运的是,您需要 api 的 V1 版本。
https://api.linkedin.com/v1/people/{ID}?format=json
将您的 LinkedIN JS SDK 添加到您的站点,应该如下所示:
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: <!-- YOUR CLIENT ID (API KEY) HERE -->
onLoad: LinkedINJSAPI.onLoad
authorize: true
credentials_cookie: true
credentials_cookie_crc: true
</script>
然后在您的JavaScript中添加以下内容:
var LinkedINJSAPI = {
onLoad: function(){
IN.User.authorize(LinkedINJSAPI.request, this );
},
request: function(){
var url = 'people/~:(firstName,lastName,emailAddress,positions,location)?format=json';
IN.API.Raw(url).
method('GET').
result(function(result){
console.log( JSON.stringify( result ) );
}).
error(function(error){
console.error( error.message );
});
}
}
您可以在此处查看工作演示...