Я использую этот PHP SDK для подключения к LinkedIn API:
https://github.com/zoonman/linkedin-api-php-client
Я аутентифицируюсь так:
// define client
$client = new Client(
$_ENV["YOUR_LINKEDIN_APP_CLIENT_ID"],
$_ENV["YOUR_LINKEDIN_APP_CLIENT_SECRET"]
);
$client->setRedirectUrl($_ENV["YOUR_LINKEDIN_APP_REDIRECT"]);
$client->setApiRoot('https://api.linkedin.com/v2/');
// define scope
$scopes = ['r_liteprofile','r_basicprofile','r_emailaddress'];
// redirect to LinkedIn
$loginUrl = $client->getLoginUrl($scopes);
return(redirect($loginUrl));
После проверки подлинности я запрашиваю конечную точку «я» следующим образом:
if (isset($_GET['code'])):
$client = new Client(
$_ENV["YOUR_LINKEDIN_APP_CLIENT_ID"],
$_ENV["YOUR_LINKEDIN_APP_CLIENT_SECRET"]
);
$client->setRedirectUrl($_ENV["YOUR_LINKEDIN_APP_REDIRECT"]);
$client->setApiRoot('https://api.linkedin.com/v2/');
// get access token and store in session
$accessToken = $client->getAccessToken($_GET['code']);
$_SESSION["accessToken"]=$accessToken;
$client->setAccessToken($accessToken);
// get user profile
$profile = $client->get('me');
print '<pre>';
print_r($profile);
print '</pre>';
endif;
Мой ответ включает только следующее:
Array
(
[lastName] => Array
(
[localized] => Array
(
[en_US] => Blow
)
[preferredLocale] => Array
(
[country] => US
[language] => en
)
)
[firstName] => Array
(
[localized] => Array
(
[en_US] => Joe
)
[preferredLocale] => Array
(
[country] => US
[language] => en
)
)
[profilePicture] => Array
(
[displayImage] => urn:li:digitalmediaAsset:12345678
)
[id] => 1234567
)
Я не получаю все данные, которые у меня есть разрешение на запрос:
https://developer.linkedin.com/docs/fields/basic-profile
Что я делаю неправильно?
Как мне получить доступ ко всем этим другим полям?
Задача ещё не решена.
Других решений пока нет …