Compartilhar postagem no LinkedIn usando API e PHP do LinkedIn
Quer saber como compartilhar posts no LinkedIn usando PHP? Neste artigo, mostrarei como enviar uma postagem no LinkedIn usando a API do LinkedIn e PHP.
Compartilhar postagens em redes sociais ajuda você a trazer mais tráfego e público para o seu site. O LinkedIn é uma rede profissional, portanto, tem uma grande chance de conseguir leitores genuínos.
Se você estiver administrando um site da Web, postar um link manualmente no LinkedIn não é uma escolha sábia. É sempre melhor ter um sistema automatizado que envie uma postagem no seu feed de maneira programática.
O LinkedIn fornece uma API de compartilhamento com a qual você pode postar um link junto com o título, a descrição e a imagem em seu feed.
Neste tutorial, passaremos por todas as etapas necessárias para compartilhar uma postagem no LinkedIn. Isso incluirá coisas como criar um aplicativo do LinkedIn, gerar um token de acesso, obter um ID de perfil do LinkedIn e, finalmente, enviar uma postagem no LinkedIn.
Criar aplicativo LinkedIn
Para começar a usar a API de compartilhamento do LinkedIn, primeiro você precisa criar o aplicativo com sua conta do LinkedIn. A integração de APIs do LinkedIn requer um ID de cliente e um segredo de cliente. Você também precisa definir um URL de redirecionamento autorizado em seu aplicativo.
Para fins de teste, vou usar o URL do meu servidor local. Você deve ajustar este URL de acordo com seu fluxo.
- Vá para LinkedIn Developer Network.
- Clique no botão ‘Criar aplicativo’.
- Conclua a configuração de acordo com as diretrizes do LinkedIn.
- Adicione http: //localhost/linkedin/callback.php no campo URLs de redirecionamento autorizado.
- Na guia ‘Produtos’, selecione o produto ‘Sign In with LinkedIn’.
- Copie o ID do cliente e as chaves secretas do cliente.
Gerar um token de acesso da conta do LinkedIn
Um token de acesso é um identificador necessário para executar operações de API na conta do usuário. Compartilhar postagens programaticamente no LinkedIn requer um token de acesso.
Para gerar um token de acesso, você precisa autorizar sua conta. Durante esse processo, precisamos enviar solicitações HTTP para o endpoint das APIs. Vamos instalar a biblioteca Guzzle, que nos permite enviar solicitações HTTP e receber a resposta.
Execute o comando abaixo no diretório raiz do seu projeto para instalar a biblioteca Guzzle.
composer require guzzlehttp/guzzle
Em seguida, crie um config.php
arquivo e passe as credenciais no arquivo conforme mostrado abaixo.
<?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');
Certifique-se de substituir os marcadores de posição por valores reais. Aqui, eu defino o URL do meu servidor local como ‘REDIRECT_URL’. No seu caso, esse URL é diferente. Para a constante ‘SCOPES’, passei as permissões padrão que são suficientes para nosso objetivo final.
Crie um URL de autorização
Para obter seu token de acesso, ele precisa construir um URL de autorização. Este URL requer um client_id e redirect_uri como um parâmetro adicional. URL de autorização leva você para o site do LinkedIn, onde você deve concluir a autenticação. Depois de concluir a autenticação, você redirecionará de volta para a URL de retorno de chamada.
Vamos criar um index.php
e adicionar o código para URL de autorização da seguinte maneira.
<?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 autorização de troca para um token de acesso
Conforme dito, após concluir a autorização, você redirecionará de volta para o URL de redirecionamento junto com o Código de Autorização. No arquivo de retorno de chamada, temos que escrever um código que envia uma solicitação POST com os parâmetros necessários para a API do LinkedIn e recebe um token de acesso.
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();
}
Ao receber o token de acesso, salve-o em um local seguro. Você pode armazená-lo no banco de dados. O LinkedIn não gera tokens de acesso de longa duração. É válido por 60 dias. Você precisa regenerar um token de acesso antes de expirar, seguindo o processo acima novamente. É uma coisa feia, mas atualmente, tokens de atualização programática (que são usados para regenerar tokens de acesso em segundo plano) estão disponíveis apenas para um conjunto limitado de parceiros. Você pode ler mais sobre isso na documentação do LinkedIn.
Obtenha seu ID do LinkedIn usando API
Você obteve o token de acesso de sua conta do LinkedIn. A próxima parte é obter sua ID do LinkedIn. Este ID é necessário para compartilhar uma postagem no LinkedIn. Obtenha esse ID enviando uma solicitação GET ao endpoint da API do 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 um token de acesso, você deve armazenar esse ID do LinkedIn. Exigiremos o token de acesso e a ID do LinkedIn na próxima etapa.
Enviar postagem no LinkedIn usando API do LinkedIn e PHP
Agora nosso último passo é enviar uma postagem no LinkedIn. A documentação da API de compartilhamento explica o formato de solicitação necessário. Tomando como referência isso, nosso código PHP seria o seguinte:
<?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;
}
No código acima, você deve substituir os marcadores de posição pelos valores reais. Depois de chamar o endpoint da API / v2 / shares, você receberá um código HTTP ‘201’. Isso significa que a postagem é criada (compartilhada) no LinkedIn.
Artigos relacionados
- Como implementar login com LinkedIn em site com PHP
- Faça login com o LinkedIn no Laravel usando o Laravel Socialite
- Como integrar a API do Planilhas Google com PHP