WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Поделиться публикацией в LinkedIn с помощью API LinkedIn и PHP

153

Хотите узнать, как публиковать сообщения в 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.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее