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