Bonsoir,
Je souhaite utiliser l'API REST LinkedIn pour collecter des informations auprès de personnes telles que le nom de l'e-mail, l'expérience ...
Je travaille avec Ionic 3 est basé sur 4 angulaire
Avec les instructions dans cette page
https: / /developer.linkedin.com/docs/rest-api
ne donne aucun résultat
Et avec cette page https://www.myprogrammingtutorials.com/linkedin-api-using-php-get-users-data.html
il me donne une erreur de jeton d'accès
Merci d'avance si vous avez des suggestions ...! ??
reste a trouver des id, il semble que la politique de linkedin aie changé
si tu as des infos ...
Utilises tu la clé d'authentification (token) qu'ils t'ont donné dans tes requêtes ajax?
Je suppose que c'est de la que vient le problème :)
voici le code que j'utilise
//search_link.php
<!DOCTYPE html>
<html>
<head>
<title>search</title>
</head>
<body>
<form method="get" action="result_link.php">
<input type="text" name="code">
<input type="submit" name="">
</form>
</body>
</html>
//result_link.php
if(isset($_GET['code'])){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://www.linkedin.com/oauth/v2/accessToken");
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS,"grant_type=authorization_code&code=".$_GET['code']."&redirect_uri=http://localhost:80/linkedin_search/result_link.php&client_id={ID_CLIENT}&client_secret={SECRET_CLIENT}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
}
if(isset($_GET['code']) && json_decode($server_output)->access_token != ''){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api.linkedin.com/v1/people/~?oauth2_access_token=".json_decode($server_output)->access_token."&format=json");
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);
print_r($user_data);
}
?>
D'après le Step3 de la doc et qui concerne l'échange du code contre un token "...v2/accessToken"
la méthode devrait être POST
je veux pas poster qlq j'aimerais recupurer les information s des gens a partir d' un mot clé donné
Oui oui on est d'accord
essaye de mettre POST à true
curl_setopt($ch, CURLOPT_URL,"https://www.linkedin.com/oauth/v2/accessToken");
curl_setopt($ch, CURLOPT_POST, true);
...
Bonjour , @huggy merci pour ton aide
j'ai changée post en true mais toujours la meme erreur
Notice: Undefined property: stdClass::$access_token in D:\xampp\htdocs\linkedin_search\result_link.php on line 44
Oui le pb vient de la première requête curl qui bloque
juste après le 1er curl_exec il faut afficher l'erreur curl
$server_output = curl_exec ($ch);
echo curl_error($ch);
il est probable que ça vienne du https si ton php est mal configuré
pour configurer le php
il faut commencer par télécharger la liste des Autorités de Certification de Mozilla ici
ensuite il faut copier ce fichier cacert.pem dans /wamp64 et dans le phpForApache.ini (ou php.ini si tu n'as qu'une seule version de php)
dans la rubrique openssl
openssl.cafile=c:\wamp64\cacert.pem
Pour l'appel Curl on peut rajouter
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,'0');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,'1');
bonjour , merci
ila un changement
{"error":"invalid_request","error_description":"Unable to retrieve access token: appid/redirect uri/code verifier does not match authorization code. Or authorization code expired. Or external member binding exists"}
l'url de callback doit être une de celles que tu as paramétrées dans ton appli linkedin (la page pour dévelopeurs)
Autre chose : l'url doit être urlencodée c-a-dire remplace :// par %3a%2f%2f
Tu as bien obtenu ton code d'autorisation par l'api suivant
<a href="https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URL}&state=987654321&scope=r_basicprofile">Register With LinkedIn</a>
comme dans ton tuto ?
ca donne
https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id={CLIENT_ID}&redirect_uri=http://localhost/linkedin_search/result_link.php&state=987654321&scope=r_basicprofile
{"access_token":"AQU7Anm46_Tl5LrXuoFolsD20wzRtsU7m1Ay766StOlb4ukb8WIKh20pHKW9A09CL_L5sx9V2wYFFHJjIhIm59pQcOH2SdV7RTB5ECfmLLNXHVFHZrNcHP6hTXT4Y8gV-XG3O-ivlcTo1WLVTPWyw2F5KWF3wukG1FEL14jw3JYTgDxpyy_zftF_8OL5Z-KZ4GQQaFEZwed4l8gYd6eJkLP8HVbz74Ty6QR6u2FvbAyebSHovvOH4T3AMdEsmDpovMtBcj3sfseLpA8kWqLX-auNpwiO7rhy2R67Z3yaNpGaAAWYwTBJYosP_bzw1YIBed07tv1OyW7dCmfl2vnr2KRh_gscWA","expires_in":5183999}
C'est bon alors ? tu as ton token
reste plus qu'a récupérer les données de profil
le tilde correpond au user courant, si tu veux un autre profil (je suppose) il faut remplacer le tilde par l'id du profil que tu veux récuperer