API вызывает #LinkedIn для r_basicprofile

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

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~)

Был бы признателен за понимание, как делать эти звонки и что не так.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
771
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

проблема в том, что API V2 требует, чтобы вы установили партнерство с 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

Большое спасибо за информацию, не могли бы вы дать мне ссылку на некоторые материалы, чтобы прочитать о V1, поскольку, за исключением основного вызова API, все другие вызовы в соответствии с документами LinkedIn предназначены для V2, кроме того, переменные в запросе GET различаются между версии (например, v1: first-name, v2: firstname), поэтому мне нужно немного почитать

Mostafa 23.10.2018 14:08

К сожалению, информация о linkedin api V1 отсутствует / отсутствует. но для людей api все возможности, которые я нашел: /v1/people/[personID]:(firstName,lastName,headline,positions‌​:(company,title,summ‌​ary,startDate,endDat‌​e,isCurrent),industr‌​y,location:(name,cou‌​ntry:(code)),picture‌​Url,publicProfileUrl‌​,emailAddress)?forma‌​t=json

Lars Hendriks 23.10.2018 14:44

Добавьте свой 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.info( JSON.stringify( result ) );
      }).
      error(function(error){
        console.error( error.message );
      });
   }
 }

Здесь вы можете увидеть рабочую демонстрацию ...

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

Другие вопросы по теме