Primeiramente você deve ter autorização para isso, você deve ter criar uma aplicativo, solicitar que o usuário autorize e então obter o access_token
, isso está explicado aqui e aqui.
Irei presumir que esses passos já estão sendo feitos. Se não estiverem, poderá seguir o mesmo princípio demonstrado abaixo.
Segundo a documentação nós temos:
URL:
https://api.linkedin.com/v1/people/~/shares?format=json
Método:
POST
Cabeçalho:
Authorization: Bearer AQXd...
Content-Type: application/json
x-li-format: json
Corpo:
{
"comment": "Check out developer.linkedin.com!",
"content": {
"title": "LinkedIn Developers Resources",
"description": "Leverage LinkedIn's APIs to maximize engagement",
"submitted-url": "https://developer.linkedin.com",
"submitted-image-url": "https://example.com/logo.png"
},
"visibility": {
"code": "anyone"
}
}
Aplicando isso para cURL, na mesma ordem, nós temos:
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.linkedin.com/v1/people/~/shares?format=json',
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
'x-li-format: json'
],
CURLOPT_POSTFIELDS => json_encode([
'coment' => 'Check out developer.linkedin.com!',
'content' => [
'title' => 'LinkedIn Developers Resources',
'description' => 'Leverage LinkedIn\'s APIs to maximize engagement',
'submitted-url' => 'https://developer.linkedin.com',
'submitted-image-url' => 'https://example.com/logo.png'
],
'visibility' => [
'code' => 'anyone'
]
]),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_PROTOCOLS => CURLPROTO_HTTPS
]);
echo $resultado = curl_exec($ch);
curl_close($ch);
Lembrando que deve inserir um token válido, no $token
. As duas últimas opções são opcionais, porém ideais. O RETURNTRANSFER
retorna o resultado para a variável que executa o curl_exec
. Já o PROTOCOLS
limita os protocolos a serem utilizados. Também é ideal definir o SSL_VERIFYPEER
e o SSL_VERIFYHOST
, mas no PHP 7.1 eles já são habilitados por padrão.