✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Condividi post su LinkedIn utilizzando l’API di LinkedIn e PHP

107

Vuoi sapere come condividere i post su LinkedIn utilizzando PHP? In questo articolo, ti mostro come inviare un post su LinkedIn utilizzando l’API di LinkedIn e PHP.

La condivisione di post sui social network ti aiuta a portare più traffico e pubblico sul tuo sito web. LinkedIn è una rete professionale, quindi avrebbe un’alta probabilità di ottenere lettori autentici.

Se stai gestendo un sito web, pubblicare un link manualmente su LinkedIn non è una scelta saggia. È sempre meglio avere un sistema automatizzato che invii un post sul tuo feed in modo programmatico.

LinkedIn fornisce un’API di condivisione tramite la quale puoi pubblicare un collegamento insieme a titolo, descrizione e immagine sul tuo feed.

In questo tutorial, esamineremo tutti i passaggi necessari per condividere un post su LinkedIn. Ciò includerà cose come la creazione di un’applicazione LinkedIn, la generazione di un token di accesso, l’ottenimento di un ID profilo LinkedIn e infine l’invio di un post su LinkedIn.

Crea un’applicazione LinkedIn

Per iniziare con l’API di condivisione di LinkedIn, devi prima creare l’applicazione con il tuo account LinkedIn. L’integrazione delle API di LinkedIn richiede un ID client e un segreto client. Devi anche impostare un URL di reindirizzamento autorizzato nella tua applicazione.

A scopo di test, utilizzerò l’URL del mio server locale. Dovresti modificare questo URL in base al tuo flusso.

  • Vai alla rete di sviluppatori LinkedIn.
  • Fare clic sul pulsante "Crea app".
  • Completa la configurazione secondo le linee guida di LinkedIn.
  • Aggiungi http://localhost/linkedin/callback.php nel campo URL di reindirizzamento autorizzato.
  • Nella scheda "Prodotti", seleziona il prodotto "Accedi con LinkedIn".
  • Copia l’ID cliente e le chiavi segrete del cliente.

Genera un token di accesso dell’account LinkedIn

Un token di accesso è un identificatore necessario per eseguire operazioni API sull’account dell’utente. La condivisione di post in modo programmatico su LinkedIn richiede un token di accesso.

Per generare un token di accesso, devi autorizzare il tuo account. Durante questo processo, dobbiamo inviare richieste HTTP all’endpoint delle API. Stiamo per installare la libreria Guzzle che ci permette di inviare richieste HTTP e ricevere la risposta.

Esegui il comando seguente nella directory principale del tuo progetto per installare la libreria Guzzle.

composer require guzzlehttp/guzzle

Quindi, crea un config.phpfile e passa le credenziali nel file come mostrato di seguito.

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

Assicurati di sostituire i segnaposto con i valori effettivi. Qui, ho impostato l’URL del mio server locale come "REDIRECT_URL". Nel tuo caso, questo URL è diverso. Alla costante ‘SCOPES’ ho passato i permessi di default che sono sufficienti per il nostro obiettivo finale.

Crea un URL di autorizzazione

Per ottenere il token di accesso, è necessario creare un URL di autorizzazione. Questo URL richiede un client_id e redirect_uri come parametro aggiuntivo. L’URL di autorizzazione ti porta al sito Web di LinkedIn dove devi completare l’autenticazione. Dopo aver completato l’autenticazione, verrai reindirizzato all’URL di richiamata.

Creiamo index.phpe aggiungiamo il codice per l’URL di autorizzazione come segue.

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

Codice di autorizzazione allo scambio per un token di accesso

Come detto, dopo aver completato l’autorizzazione, verrai reindirizzato all’URL di reindirizzamento insieme al codice di autorizzazione. Nel file di callback, dobbiamo scrivere un codice che invia una richiesta POST con i parametri richiesti all’API LinkedIn e riceve un token di accesso.

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

Dopo aver ricevuto il token di accesso, salvarlo in un luogo sicuro. Puoi salvarlo nel database. LinkedIn non genera token di accesso di lunga durata. È valido per 60 giorni. È necessario rigenerare un token di accesso prima della scadenza seguendo nuovamente la procedura sopra indicata. È una specie di cosa brutta, ma attualmente i token di aggiornamento programmatico (utilizzati per rigenerare i token di accesso in background) sono disponibili solo per un set limitato di partner. Puoi leggere di più su questo nella documentazione di LinkedIn.

Ottieni il tuo ID LinkedIn utilizzando l’API

Hai il token di accesso del tuo account LinkedIn. La parte successiva è ottenere il tuo ID LinkedIn. Questo ID è necessario per condividere un post su LinkedIn. Ottieni questo ID inviando una richiesta GET all’endpoint dell’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();
}

Come un token di accesso, dovresti memorizzare questo ID LinkedIn. Richiederemo sia il token di accesso che l’ID LinkedIn nel passaggio successivo.

Invia post su LinkedIn utilizzando l’API di LinkedIn e PHP

Ora il nostro ultimo passo è inviare un post su LinkedIn. La documentazione dell’API di condivisione spiega il formato della richiesta necessario. Prendendo un riferimento da esso, il nostro codice PHP sarebbe il seguente:

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

Nel codice sopra, devi sostituire i segnaposto con i valori effettivi. Dopo aver chiamato l’endpoint API /v2/shares, otterrai un codice HTTP "201". Significa che il post è stato creato (condiviso) su LinkedIn.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More