Поделиться публикацией в LinkedIn с помощью API LinkedIn и 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>
Код авторизации Exchange для токена доступа
Как сказано, после завершения авторизации вы будете перенаправлены обратно на 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 ID с помощью API
У вас есть токен доступа к вашей учетной записи LinkedIn. Следующая часть – получить ваш LinkedIn ID. Этот идентификатор необходим для публикации публикации в 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 с помощью API LinkedIn и 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 / share вы получите HTTP-код 201. Это означает, что сообщение создано (опубликовано) в LinkedIn.
Статьи по Теме
- Как реализовать вход через LinkedIn на веб-сайте с помощью PHP
- Войдите в LinkedIn в Laravel с помощью Laravel Socialite
- Как интегрировать API Google Таблиц с PHP