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 );
      });
   }
 }

您可以在此处查看工作演示...

https://codepen.io/craigiswayne/pen/KGbqRq