Partager une publication sur LinkedIn à l’aide de l’API LinkedIn et de PHP
Voulez-vous savoir comment partager des publications sur LinkedIn en utilisant PHP? Dans cet article, je vous montre comment envoyer un message sur LinkedIn en utilisant l’API LinkedIn et PHP.
Le partage de publications sur les réseaux sociaux vous aide à attirer plus de trafic et d’audience sur votre site Web. LinkedIn est un réseau professionnel, il aurait donc de grandes chances d’obtenir de véritables lecteurs.
Si vous exploitez un site Web, publier un lien manuellement sur LinkedIn n’est pas un choix judicieux. Il est toujours préférable d’avoir un système automatisé qui envoie une publication sur votre flux par programmation.
LinkedIn fournit une API de partage à l’ aide de laquelle vous pouvez publier un lien ainsi qu’un titre, une description et une image sur votre flux.
Dans ce tutoriel, nous allons parcourir toutes les étapes nécessaires pour partager une publication sur LinkedIn. Cela inclura des éléments tels que la création d’une application LinkedIn, la génération d’un jeton d’accès, l’obtention d’un identifiant de profil LinkedIn et enfin l’envoi d’un message sur LinkedIn.
Créer une application LinkedIn
Pour commencer avec l’API de partage LinkedIn, vous devez d’abord créer l’application avec votre compte LinkedIn. L’intégration des API LinkedIn nécessite un identifiant client et un secret client. Vous devez également définir une URL de redirection autorisée dans votre application.
À des fins de test, je vais utiliser l’URL de mon serveur local. Vous devez ajuster cette URL en fonction de votre flux.
- Accédez au réseau de développeurs LinkedIn.
- Cliquez sur le bouton « Créer une application ».
- Terminez la configuration conformément aux directives de LinkedIn.
- Ajoutez http://localhost/linkedin/callback.php dans le champ URL de redirection autorisées.
- Sous l’onglet « Produits », sélectionnez le produit « Se connecter avec LinkedIn ».
- Copiez l’ID client et les clés secrètes du client.
Générer un jeton d’accès du compte LinkedIn
Un jeton d’accès est un identifiant requis pour effectuer des opérations d’API sur le compte de l’utilisateur. Le partage de publications par programme sur LinkedIn nécessite un jeton d’accès.
Pour générer un jeton d’accès, vous devez autoriser votre compte. Au cours de ce processus, nous devons envoyer des requêtes HTTP au point de terminaison des API. Nous allons installer la librairie Guzzle qui nous permet d’envoyer des requêtes HTTP et de recevoir la réponse.
Exécutez la commande ci-dessous dans le répertoire racine de votre projet pour installer la bibliothèque Guzzle.
composer require guzzlehttp/guzzle
Ensuite, créez un config.php
fichier et transmettez les informations d’identification dans le fichier comme indiqué ci-dessous.
<?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');
Assurez-vous de remplacer les espaces réservés par des valeurs réelles. Ici, j’ai défini l’URL de mon serveur local en tant que ‘REDIRECT_URL’. Dans votre cas, cette URL est différente. À la constante ‘SCOPES’, j’ai passé les autorisations par défaut qui sont suffisantes pour notre objectif final.
Créer une URL d’autorisation
Pour obtenir votre jeton d’accès, il doit créer une URL d’autorisation. Cette URL nécessite un client_id et un redirect_uri comme paramètre supplémentaire. L’URL d’autorisation vous amène au site Web de LinkedIn où vous devez terminer l’authentification. Une fois l’authentification terminée, vous serez redirigé vers l’URL de rappel.
Créons un index.php
et ajoutons le code pour l’URL d’autorisation comme suit.
<?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>
Code d’autorisation d’échange pour un jeton d’accès
Comme indiqué après avoir terminé l’autorisation, vous serez redirigé vers l’URL de redirection avec le code d’autorisation. Dans le fichier de rappel, nous devons écrire un code qui envoie une requête POST avec les paramètres requis à l’API LinkedIn et reçoit un jeton d’accès.
rappel.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();
}
Dès réception du jeton d’accès, enregistrez-le dans un endroit sûr. Vous pouvez le stocker dans la base de données. LinkedIn ne génère pas de jetons d’accès de longue durée. Il est valable 60 jours. Vous devez régénérer un jeton d’accès avant son expiration en suivant à nouveau le processus ci-dessus. C’est une sorte de chose moche, mais actuellement, les jetons d’actualisation programmatiques (qui sont utilisés pour régénérer les jetons d’accès en arrière-plan) ne sont disponibles que pour un ensemble limité de partenaires. Vous pouvez en savoir plus à ce sujet sur la documentation LinkedIn.
Obtenez votre identifiant LinkedIn en utilisant l’API
Vous avez le jeton d’accès de votre compte LinkedIn. La prochaine étape consiste à obtenir votre identifiant LinkedIn. Cet identifiant est nécessaire pour partager une publication sur LinkedIn. Obtenez cet ID en envoyant une requête GET au point de terminaison de l’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();
}
Comme un jeton d’accès, vous devez stocker cet identifiant LinkedIn. Nous aurons besoin à la fois du jeton d’accès et de l’identifiant LinkedIn à l’étape suivante.
Envoyer un message sur LinkedIn à l’aide de l’API LinkedIn et de PHP
Maintenant, notre dernière étape consiste à envoyer un message sur LinkedIn. La documentation de l’API Share explique le format de demande nécessaire. En prenant une référence, notre code PHP serait le suivant :
<?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;
}
Dans le code ci-dessus, vous devez remplacer les espaces réservés par les valeurs réelles. Après avoir appelé le point de terminaison de l’API /v2/shares, vous obtiendrez un code HTTP « 201 ». Cela signifie que la publication est créée (partagée) sur LinkedIn.
Articles Liés
- Comment implémenter la connexion avec LinkedIn dans un site Web avec PHP
- Connectez-vous avec LinkedIn dans Laravel en utilisant Laravel Socialite
- Comment intégrer l’API Google Sheets avec PHP