Compartir publicación en LinkedIn usando la API de LinkedIn y PHP
¿Quieres saber cómo compartir publicaciones en LinkedIn usando PHP? En este artículo, le muestro cómo enviar una publicación en LinkedIn usando la API de LinkedIn y PHP.
Compartir publicaciones en las redes sociales le ayuda a atraer más tráfico y público a su sitio web. LinkedIn es una red profesional, por lo que tendría muchas posibilidades de obtener lectores genuinos.
Si está ejecutando un sitio web, publicar un enlace manualmente en LinkedIn no es una buena elección. Siempre es mejor tener un sistema automatizado que envíe una publicación en su feed de manera programática.
LinkedIn proporciona una API para compartir mediante la cual puede publicar un enlace junto con el título, la descripción y la imagen en su feed.
En este tutorial, repasaremos todos los pasos necesarios para compartir una publicación en LinkedIn. Esto incluirá cosas como crear una aplicación de LinkedIn, generar un token de acceso, obtener una identificación de perfil de LinkedIn y, finalmente, enviar una publicación en LinkedIn.
Crear aplicación de LinkedIn
Para comenzar con la API compartida de LinkedIn, primero debe crear la aplicación con su cuenta de LinkedIn. La integración de las API de LinkedIn requiere una identificación de cliente y un secreto de cliente. También debe establecer una URL de redireccionamiento autorizada en su aplicación.
Para propósitos de prueba, usaré la URL de mi servidor local. Debe ajustar esta URL según su flujo.
- Vaya a la red de desarrolladores de LinkedIn.
- Haga clic en el botón ‘Crear aplicación’.
- Complete la configuración según las pautas de LinkedIn.
- Agregue http: //localhost/linkedin/callback.php en el campo URL de redireccionamiento autorizado.
- En la pestaña ‘Productos’, seleccione el producto ‘Iniciar sesión con LinkedIn’.
- Copie el ID de cliente y las claves secretas del cliente.
Genere un token de acceso de la cuenta de LinkedIn
Un token de acceso es un identificador que se requiere para realizar operaciones de API en la cuenta del usuario. Compartir publicaciones mediante programación en LinkedIn requiere un token de acceso.
Para generar un token de acceso, debe autorizar su cuenta. Durante este proceso, necesitamos enviar solicitudes HTTP al punto final de las API. Vamos a instalar la biblioteca Guzzle que nos permite enviar solicitudes HTTP y recibir la respuesta.
Ejecute el siguiente comando en el directorio raíz de su proyecto para instalar la biblioteca Guzzle.
composer require guzzlehttp/guzzle
A continuación, cree un config.php
archivo y pase las credenciales en el archivo como se muestra a continuación.
<?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');
Asegúrese de reemplazar los marcadores de posición con valores reales. Aquí, configuro la URL de mi servidor local como ‘REDIRECT_URL’. En su caso, esta URL es diferente. A la constante ‘SCOPES’, he pasado los permisos predeterminados que son suficientes para nuestro objetivo final.
Cree una URL de autorización
Para obtener su token de acceso, debe crear una URL de autorización. Esta URL requiere un client_id y redirect_uri como parámetro adicional. La URL de autorización lo lleva al sitio web de LinkedIn donde debe completar la autenticación. Después de completar la autenticación, lo redireccionará de nuevo a la URL de devolución de llamada.
Creemos index.php
y agreguemos el código para la URL de autorización de la siguiente manera.
<?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>
Código de autorización de intercambio para un token de acceso
Como se dijo después de completar la autorización, lo redireccionará nuevamente a la URL de redireccionamiento junto con el Código de autorización. En el archivo de devolución de llamada, tenemos que escribir un código que envía una solicitud POST con los parámetros requeridos a la API de LinkedIn y recibe un token de acceso.
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();
}
Al recibir el token de acceso, guárdelo en un lugar seguro. Puede almacenarlo en la base de datos. LinkedIn no genera tokens de acceso de larga duración. Tiene una validez de 60 días. Debe volver a generar un token de acceso antes de que caduque siguiendo el proceso anterior nuevamente. Es algo feo, pero actualmente, los tokens de actualización programática (que se utilizan para regenerar los tokens de acceso en segundo plano) están disponibles solo para un conjunto limitado de socios. Puede leer más sobre esto en la documentación de LinkedIn.
Obtenga su ID de LinkedIn usando API
Obtuviste el token de acceso de tu cuenta de LinkedIn. La siguiente parte es obtener su ID de LinkedIn. Esta identificación es necesaria para compartir una publicación en LinkedIn. Obtenga este ID enviando una solicitud GET al punto final de la API de 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();
}
Como un token de acceso, debe almacenar este ID de LinkedIn. Necesitaremos tanto el token de acceso como el ID de LinkedIn en el siguiente paso.
Enviar publicación en LinkedIn usando la API de LinkedIn y PHP
Ahora nuestro último paso es enviar una publicación en LinkedIn. La documentación de Share API explica el formato de solicitud necesario. Tomando una referencia de él, nuestro código PHP sería el siguiente:
<?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;
}
En el código anterior, debe reemplazar los marcadores de posición con los valores reales. Después de llamar al punto final de la API / v2 / shares, obtendrá un código HTTP ‘201’. Significa que la publicación se crea (se comparte) en LinkedIn.
Artículos relacionados
- Cómo implementar el inicio de sesión con LinkedIn en un sitio web con PHP
- Iniciar sesión con LinkedIn en Laravel usando Laravel Socialite
- Cómo integrar la API de Google Sheets con PHP