Поділіться публікацією в LinkedIn, використовуючи LinkedIn API та PHP
Ви хочете знати, як ділитися публікаціями в LinkedIn за допомогою PHP? У цій статті я покажу вам, як надіслати допис на LinkedIn за допомогою API LinkedIn та PHP.
Спільний доступ до публікацій у соціальних мережах допомагає залучити більше відвідувачів та аудиторії на ваш веб-сайт. LinkedIn – це професійна мережа, тому вона матиме високі шанси отримати справжніх читачів.
Якщо у вас веб-сайт, то розміщення посилання вручну на LinkedIn не є розумним вибором. Завжди краще мати автоматизовану систему, яка програмно надсилає допис на ваш канал.
LinkedIn надає API спільного використання, за допомогою якого ви можете розміщувати посилання разом із заголовком, описом та зображенням у своєму каналі.
У цьому посібнику ми пройдемо всі кроки, необхідні для обміну публікацією в LinkedIn. Це включатиме такі речі, як створення програми LinkedIn, створення маркера доступу, отримання ідентифікатора профілю LinkedIn і, нарешті, надсилання публікації на LinkedIn.
Створіть додаток LinkedIn
Для того, щоб розпочати роботу з API спільного доступу LinkedIn, спочатку потрібно створити програму зі своїм обліковим записом LinkedIn. Інтеграція API LinkedIn вимагає ідентифікатора клієнта та секрету клієнта. Вам також потрібно встановити в додатку авторизовану URL-адресу для переадресації.
Для тестування я збираюся використовувати URL-адресу свого локального сервера. Ви повинні налаштувати цю URL-адресу відповідно до вашого потоку.
- Перейдіть до мережі розробників LinkedIn.
- Натисніть кнопку "Створити програму".
- Завершіть налаштування відповідно до вказівок LinkedIn.
- Додайте http: //localhost/linkedin/callback.php у поле Авторизовані URL-адреси переспрямування.
- На вкладці "Продукти" виберіть продукт "Увійти за допомогою LinkedIn".
- Скопіюйте ідентифікатор клієнта та секретні ключі клієнта.
Створіть маркер доступу для облікового запису LinkedIn
Токен доступу – це ідентифікатор, необхідний для виконання операцій API над обліковим записом користувача. Для програмного обміну публікаціями на LinkedIn потрібен маркер доступу.
Щоб згенерувати маркер доступу, потрібно авторизувати свій обліковий запис. Під час цього процесу нам потрібно надсилати запити HTTP до кінцевої точки API. Ми збираємось встановити бібліотеку Guzzle, яка дозволяє нам надсилати HTTP-запити та отримувати відповідь.
Запустіть команду нижче в кореневому каталозі проекту, щоб встановити бібліотеку Guzzle.
composer require guzzlehttp/guzzle
Далі створіть config.php
файл і передайте облікові дані у файл, як показано нижче.
<?php
define('CLIENT_ID', 'YOUR_CLIENT_ID');
define('CLIENT_SECRET', 'YOUR_CLIENT_SECRET');
define('REDIRECT_URL', 'http://localhost/linkedin/callback.php');
define('SCOPES', 'r_emailaddress,r_liteprofile,w_member_social');
Обов’язково замінюйте заповнювачі фактичними значеннями. Тут я встановив URL-адресу свого локального сервера як "REDIRECT_URL". У вашому випадку ця URL-адреса інша. До константи ‘SCOPES’ я передав дозволи за замовчуванням, яких достатньо для нашої кінцевої мети.
Створіть URL-адресу авторизації
Щоб отримати ваш маркер доступу, йому потрібно створити URL-адресу авторизації. Ця URL-адреса вимагає client_id та redirect_uri як додатковий параметр. URL-адреса авторизації спрямовує вас на веб-сайт LinkedIn, де вам потрібно виконати автентифікацію. Після завершення автентифікації ви перенаправите назад на URL зворотного дзвінка.
Давайте створимо index.php
та додамо код для авторизації URL наступним чином.
<?php
require_once 'config.php';
$url = "https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=".CLIENT_ID."&redirect_uri=".REDIRECT_URL."&scope=".SCOPES;
?>
<a href="<?php echo $url; ?>">Login with LinkedIn</a>
Обміняйте код авторизації на маркер доступу
Як сказано після завершення авторизації, ви перенаправите назад на URL-адресу переадресації разом із кодом авторизації. У файлі зворотного виклику нам потрібно написати код, який надсилає запит POST із необхідними параметрами до API LinkedIn і отримує маркер доступу.
callback.php
<?php
require_once 'config.php';
require_once 'vendor/autoload.php';
use GuzzleHttpClient;
try {
$client = new Client(['base_uri' => 'https://www.linkedin.com']);
$response = $client->request('POST', '/oauth/v2/accessToken', [
'form_params' => [
"grant_type" => "authorization_code",
"code" => $_GET['code'],
"redirect_uri" => REDIRECT_URL,
"client_id" => CLIENT_ID,
"client_secret" => CLIENT_SECRET,
],
]);
$data = json_decode($response->getBody()->getContents(), true);
$access_token = $data['access_token']; // store this token somewhere
} catch(Exception $e) {
echo $e->getMessage();
}
Отримавши маркер доступу, збережіть його у безпечному місці. Ви можете зберігати його в базі даних. LinkedIn не генерує довговічні маркери доступу. Він діє 60 днів. Вам потрібно відновити маркер доступу до закінчення терміну дії, повторивши описаний вище процес ще раз. Це якось потворно, але наразі програмні маркери оновлення (які використовуються для регенерації маркерів доступу у фоновому режимі) доступні лише для обмеженого набору партнерів. Ви можете прочитати більше про це в документації LinkedIn.
Отримайте свій ідентифікатор LinkedIn за допомогою API
Ви отримали маркер доступу до свого облікового запису LinkedIn. Наступна частина – отримати ідентифікатор LinkedIn. Цей ідентифікатор необхідний для надсилання публікації в LinkedIn. Отримайте цей ідентифікатор, надіславши запит GET кінцевій точці API LinkedIn / v2 / me.
<?php
require_once 'config.php';
require_once 'vendor/autoload.php';
use GuzzleHttpClient;
$access_token = 'YOUR_ACCESS_TOKEN';
try {
$client = new Client(['base_uri' => 'https://api.linkedin.com']);
$response = $client->request('GET', '/v2/me', [
'headers' => [
"Authorization" => "Bearer ". $access_token,
],
]);
$data = json_decode($response->getBody()->getContents(), true);
$linkedin_profile_id = $data['id']; // store this id somewhere
} catch(Exception $e) {
echo $e->getMessage();
}
Як і маркер доступу, ви повинні зберігати цей ідентифікатор LinkedIn. На наступному кроці нам знадобляться маркер доступу та ідентифікатор LinkedIn.
Надіслати допис на LinkedIn, використовуючи LinkedIn API та PHP
Тепер наш останній крок – надіслати допис на LinkedIn. Документація Share API пояснює необхідний формат запиту. Якщо взяти з нього посилання, наш PHP-код буде таким:
<?php
require_once 'vendor/autoload.php';
use GuzzleHttpClient;
$link = 'YOUR_LINK_TO_SHARE';
$access_token = 'YOUR_ACCESS_TOKEN';
$linkedin_id = 'YOUR_LINKEDIN_ID';
$body = new stdClass();
$body->content = new stdClass();
$body->content->contentEntities[0] = new stdClass();
$body->text = new stdClass();
$body->content->contentEntities[0]->thumbnails[0] = new stdClass();
$body->content->contentEntities[0]->entityLocation = $link;
$body->content->contentEntities[0]->thumbnails[0]->resolvedUrl = "THUMBNAIL_URL_TO_POST";
$body->content->title = 'YOUR_POST_TITLE';
$body->owner = 'urn:li:person:'.$linkedin_id;
$body->text->text = 'YOUR_POST_SHORT_SUMMARY';
$body_json = json_encode($body, true);
try {
$client = new Client(['base_uri' => 'https://api.linkedin.com']);
$response = $client->request('POST', '/v2/shares', [
'headers' => [
"Authorization" => "Bearer ". $access_token,
"Content-Type" => "application/json",
"x-li-format" => "json"
],
'body' => $body_json,
]);
if ($response->getStatusCode() !== 201) {
echo 'Error: '. $response->getLastBody()->errors[0]->message;
}
echo 'Post is shared on LinkedIn successfully.';
} catch(Exception $e) {
echo $e->getMessage(). ' for link '. $link;
}
У наведеному вище коді вам доведеться замінити заповнювачі фактичними значеннями. Після виклику кінцевої точки API / v2 / shared ви отримаєте HTTP-код ‘201’. Це означає, що публікація створена (поділена) на LinkedIn.
Пов’язані статті
- Як застосувати вхід за допомогою LinkedIn на веб-сайті з PHP
- Увійдіть за допомогою LinkedIn в Laravel за допомогою Laravel Socialite
- Як інтегрувати API Google Sheets з PHP