ccc

API Linkedin (Mayo 2019)

En https://www.linkedin.com/developers/ registrar una nueva APP para obtener el client_id y client_secret (verificar tb la empresa a la que asocias dicha APP).

index.php:
require("config.php");
require("funciones.php");
getAuthorizationCode();

funciones.php:
if (! session_id()) {
    session_start();
}

function getAuthorizationCode() {
    $params = array(
        'response_type' => 'code',
        'client_id' => CLIENT_ID,
        'scope' => SCOPE,
        'state' => uniqid('', true), // unique long string
        'redirect_uri' => REDIRECT_URI,
    );

    // $url = 'https://www.linkedin.com/uas/oauth2/authorization?' . http_build_query($params);
$url = 'https://www.linkedin.com/oauth/v2/authorization?'.http_build_query($params);
    $_SESSION['state'] = $params['state'];
// echo $url;
    header("Location: $url");
    exit;
}

config.php:
define("CLIENT_ID", "77xxxx4hr97s30");
define("CLIENT_SECRET", "LRxxxxPZd2UgEV4Z");
define("REDIRECT_URI", "http://localhost/pruebas/linkedin/test_linkedin.php");
// define("SCOPE", 'r_basicprofile r_emailaddress');
define("SCOPE", "r_liteprofile r_emailaddress");

test_linkedin.php
require("config.php");
require("funciones.php");

$_SESSION['access_token'] = $_REQUEST["code"];
$url = "https://www.linkedin.com/oauth/v2/accessToken?grant_type=authorization_code&code=".$_GET["code"]."&redirect_uri=http://localhost/pruebas/linkedin/test_linkedin.php&client_id=".CLIENT_ID."&client_secret=".CLIENT_SECRET;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url."&format=json");
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output2 = curl_exec ($ch);
curl_close ($ch);

if ($server_output2 === false) {
    exit("Error Number: " . curl_errno($ch) . "<br>Error String: " . curl_error($ch) . "<br>Info: " . print_r(curl_getinfo($ch), true));

else {
    $obj = json_decode($server_output);
}

$_SESSION['access_token'] = $obj->access_token;
   
// sacar datos básicos
 $url = "https://api.linkedin.com/v2/me/?oauth2_access_token=".$_SESSION['access_token']; // ."&projection=(id,firstName,email-address)";
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL,$url);
 curl_setopt($ch, CURLOPT_POST, 0);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $server_output2 = curl_exec ($ch);
 curl_close ($ch);
 $user_data = json_decode($server_output2);
 echo "<br>Nombre: ".$user_data->firstName->localized->es_ES;
 echo "<br>Apellidos: ".$user_data->lastName->localized->es_ES;

 $url = "https://api.linkedin.com/v2/emailAddress?oauth2_access_token=".$_SESSION['access_token']."&q=members&projection=(elements*(handle~))"; //."&q=members&projection=(elements*(handle~))";
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL,$url);
 curl_setopt($ch, CURLOPT_POST, 0);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $server_output2 = curl_exec ($ch);
 curl_close ($ch);

 $user_data = json_decode($server_output2);
 // echo "<br>Email: ".$user_data->elements[0]->handle~->emailAddress;

  // print_r($user_data);

  foreach ($user_data->elements[0] as $clave=>$valor) {
  if (isset($valor->emailAddress)) {
  echo "<br>Email:".$valor->emailAddress;
  }
  }

No hay comentarios:

Publicar un comentario