✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Dela inlägg på LinkedIn med LinkedIn API och PHP

32

Vill du veta hur du delar inlägg på LinkedIn med PHP? I den här artikeln visar jag dig hur du skickar ett inlägg på LinkedIn med LinkedIn API och PHP.

Att dela inlägg på sociala nätverk hjälper dig att få mer trafik och publik till din webbplats. LinkedIn är ett professionellt nätverk så det skulle ha en stor chans att få äkta läsare.

Om du driver en webbplats är det inte ett klokt val att lägga upp en länk manuellt på LinkedIn. Det är alltid bättre att ha ett automatiserat system som skickar ett inlägg i ditt flöde programmatiskt.

LinkedIn tillhandahåller ett Share API med vilket du kan lägga upp en länk tillsammans med titel, beskrivning och bild på ditt flöde.

I denna handledning kommer vi att gå igenom alla steg som krävs för att dela ett inlägg på LinkedIn. Detta kommer att inkludera saker som att skapa en LinkedIn-applikation, generera en åtkomsttoken, få ett LinkedIn-profil-ID och slutligen skicka ett inlägg på LinkedIn.

Skapa LinkedIn-applikation

För att börja med LinkedIn-delnings-API måste du först skapa applikationen med ditt LinkedIn-konto. Integrering av LinkedIn API: er kräver ett klient-id och en klienthemlighet. Du måste också ange en auktoriserad omdirigerings-URL i din applikation.

För teständamål ska jag använda min lokala server-URL. Du bör justera den här webbadressen enligt ditt flöde.

Skapa ett åtkomsttoken av LinkedIn-konto

En åtkomsttoken är en identifierare som krävs för att utföra API-åtgärder på användarens konto. För att dela inlägg programmatiskt på LinkedIn krävs en åtkomsttoken.

För att skapa en åtkomsttoken måste du auktorisera ditt konto. Under den här processen måste vi skicka HTTP-förfrågningar till API: s slutpunkt. Vi ska installera Guzzle-biblioteket som gör att vi kan skicka HTTP-förfrågningar och ta emot svaret.

Kör kommandot nedan i din projektkatalog för att installera Guzzle-biblioteket.

composer require guzzlehttp/guzzle

Skapa sedan en config.phpfil och skicka inloggningsuppgifterna i filen enligt nedan.

<?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');

Se till att ersätta platshållare med faktiska värden. Här ställer jag in min lokala server-URL som "REDIRECT_URL". I ditt fall är den här webbadressen annorlunda. Till "SCOPES" -konstanten har jag skickat standardbehörigheterna som är tillräckliga för vårt slutmål.

Skapa en auktoriserings-URL

För att få din åtkomsttoken måste den bygga en auktoriserings-URL. Denna URL kräver en client_id och redirect_uri som en ytterligare parameter. Auktoriserings-URL tar dig till LinkedIn-webbplatsen där du måste slutföra autentiseringen. När du har slutfört autentiseringen omdirigerar du tillbaka till URL för återuppringning.

Låt oss skapa en index.phpoch lägga till koden för auktoriserings-URL enligt följande.

<?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-auktoriseringskod för en åtkomsttoken

Som sagt när du har slutfört auktoriseringen omdirigerar du tillbaka till omdirigerings-URL: n tillsammans med auktoriseringskoden. I återuppringningsfilen måste vi skriva en kod som skickar en POST-begäran med nödvändiga parametrar till LinkedIn API och får en åtkomsttoken.

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();
}

När du får åtkomsttoken, spara den på en säker plats. Du kan lagra den i databasen. LinkedIn genererar inte långvariga åtkomsttoken. Det gäller i 60 dagar. Du måste regenerera en åtkomsttoken före utgången genom att följa ovanstående process igen. Det är en slags ful sak men för närvarande är programmatiska uppdateringstoken (som används för att regenerera åtkomsttoken i bakgrunden) endast tillgängliga för en begränsad uppsättning partners. Du kan läsa mer om detta i LinkedIn-dokumentationen.

Skaffa ditt LinkedIn-ID med API

Du har åtkomsttoken för ditt LinkedIn-konto. Nästa del är att få ditt LinkedIn-ID. Detta ID krävs för att dela ett inlägg på LinkedIn. Få detta ID genom att skicka en GET-begäran till LinkedIn API-slutpunkten / 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();
}

Som en åtkomsttoken bör du lagra detta LinkedIn-ID. Vi kommer att kräva både åtkomsttoken och LinkedIn-ID i nästa steg.

Skicka inlägg på LinkedIn med LinkedIn API och PHP

Nu är vårt sista steg att skicka ett inlägg på LinkedIn. Den Share API-dokumentationen förklarar begäran format behövs. Med en hänvisning från den skulle vår PHP-kod vara som följer:

<?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;
}

I ovanstående kod måste du ersätta platshållarna med de faktiska värdena. Efter att ha anropat API-slutpunkten / v2 / delarna får du en ‘201’ HTTP-kod. Det betyder att inlägget skapas (delas) på LinkedIn.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer