Чтобы быстрее вникнуть, смотри пример использования внутри index.php.
Установка делается через composer следующей командой
composer require zoonman/linkedin-api-php-client
Также можно добавить composer.json
.
Если вы никогда им не пользовались, познакомьтесь на этой страничке и установите composer.
Чтобы начать работать с LinkedIn API, потребуется раздобыть идентификатор клиента (client id) и его секретный ключ (secret).
Получить их можно на Портале разработчиков, для этого зайдите в секцию мои приложения (My Apps).
Установите пакет, там появится каталог vendor, в котором будет autoload.php - это автозагрузчик.
// ... подлкючить автозагрузчик
include_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
// сделать класс доступным
use LinkedIn\Client;
// создать новый объект
$client = new Client(
'LINKEDIN_APP_CLIENT_ID',
'LINKEDIN_APP_CLIENT_SECRET'
);
Чтобы начать процесс аутентификации вам необходимо установить адрес для перенаправления.
Вы можете вызвать метод getRedirectUrl()
,
$redirectUrl = $client->getRedirectUrl();
Вам нужно будет сохранить этот адрес во временное хранилище для текущей сессии. Вам потребуется этот адрес снова, когда вы будете получать токен.
$_SESSION['linkedin_redirect_url'] = $redirectUrl;
Вы также можете использовать setRedirectUrl()
, чтобы установить свой обратный адрес.
Не забудьте указать этот адрес в параметрах приложения.
$client->setRedirectUrl('http://your.domain.tld/path/to/script/');
Для того, чтобы пройти аутентификацию, вам необходимо получить адрес в LinkedIn, на который нужно перенаправить пользователя. Этот тот самый адрес, на котором пользователя спрашивают о подтвердении запрашиваемых прав доступа для приложения.
// определить области доступа
$scopes = [
'r_basicprofile',
'r_emailaddress',
'rw_company_admin',
'w_share',
];
$loginUrl = $client->getLoginUrl($scopes); // получить адрес
Теперь нужно перенаправить пользователя на полученный адрес.
Чтобы получить токен или маркер доступа, как его иногда называют, нужно установить обратный адрес ($redirectUrl), который вы сохранили в сессии.
А затем вызвать получение токена
$accessToken = $client->getAccessToken($_GET['code']);
All API calls can be called through simple method: Вызовы API происходят с помощью простого метода api(), который принимает 3 параметра: путь вызова, параметры и метод.
$profile = $client->api(
'ENDPOINT',
['parameter name' => 'its value here'],
'HTTP method like GET for example'
);
Есть два упрощенных вызова:
// метод get
$client->get('путь', ['имя параметра' => 'значение']);
// метод post
$client->post('ENDPOINT', ['param' => 'value']);
Получить информацию о профиле
$profile = $client->get(
'people/~:(id,email-address,first-name,last-name)'
);
print_r($profile);
Получить список компаний, в которой владелец токена - администратор.
$profile = $client->get(
'companies',
['is-company-admin' => true]
);
print_r($profile);
Опубликовать сообщение у себя на странице профиля
$share = $client->post(
'people/~/shares',
[
'comment' => 'Посмотри, какая классная библиотека для работы с LinkedIn!',
'content' => [
'title' => 'PHP Client for LinkedIn API',
'description' => 'OAuth 2 flow, composer Package',
'submitted-url' => 'https://github.com/zoonman/linkedin-api-php-client',
'submitted-image-url' => 'https://github.com/fluidicon.png',
],
'visibility' => [
'code' => 'anyone'
]
]
);
Поделиться контентом на тестовой странице компаний
// Вы можете увидеть сообщение на этой странице
// https://www.linkedin.com/company/devtestco
$companyId = '2414183'; // идентификатор страницы
$share = $client->post(
'companies/' . $companyId . '/shares',
[
'comment' => 'Checkout this amazing PHP SDK for LinkedIn!',
'content' => [
'title' => 'PHP Client for LinkedIn API',
'description' => 'OAuth 2 flow, composer Package',
'submitted-url' => 'https://github.com/zoonman/linkedin-api-php-client',
'submitted-image-url' => 'https://github.com/fluidicon.png',
],
'visibility' => [
'code' => 'anyone'
]
]
);
Установить заголовки по умолчанию
$client->setApiHeaders([
'Content-Type' => 'application/json',
'x-li-format' => 'json',
'x-li-src' => 'msdk' // например отправить "msdk" чтобы симулировать мобильное SDK
]);
Изменить корневой адрес для API вызовов
$client->setApiRoot('https://api.linkedin.com/v2/');
Если вы нашли ошибку и исправили ее, вы всегда можете открыть Pull Request. У нас есть небольшое требование к качеству кода. Пожалуйста, следуйте стандарту PSR и пишите тесты PHPUnit для вносимых изменений.
MIT - вы имеете право использовать библиотеку без каких-либо отчислений. Пожалуйста, указывайте ссылку на данный проекта в своих приложениях.