API вызывает #LinkedIn для r_basicprofile - PullRequest
0 голосов
/ 22 октября 2018

Я внимательно прочитал документы разработчика LinkedIn, касающиеся вызовов API, после документов я смог запросить код доступа, обменять его с сервером и получить токен доступа.

После этого мне удалосьполучить часть профиля участника, используя токен доступа в формате 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, но все же ошибка:

Предупреждение: file_get_contents (https://api.linkedin.com/v2/people/~:(industryId~)?format=json): не удалось открыть поток: сбой HTTP-запроса! 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;

Я даже пытался получить профиль memeber с помощью приведенных ниже запросов GET, но те же 403 вернулись.

https://api.linkedin.com/v2/people/(id:{person ID})

https://api.linkedin.com/v2/people/(id:{profileID})?projection=(id,firstName,lastName,industryId~)

Буду признателен за понимание того, как совершать эти звонки, и что не так.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Добавьте ваш 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

0 голосов
/ 23 октября 2018

проблема в том, что API V2 требует от вас партнерства с linkedin.это означает, что вы получаете сообщение об ошибке 403.

Партнерство с LinkedIn предоставляет вам дополнительную функциональность API и доступ к данным, увеличенные ограничения вызовов и выделенную поддержку.Узнайте больше о наших различных партнерских программах и вариантах использования и посмотрите, подходит ли она для вашего приложения.Заявки принимаются только тогда, когда мы чувствуем, что они приносят пользу участникам, разработчикам и LinkedIn.

source: https://developer.linkedin.com/partner-programs

к счастью для васэто версия API для V1, которая вам требуется.

https://api.linkedin.com/v1/people/{ID}?format=json
...