2015-10-10 3 views
1

J'essaie d'échanger du code d'autorisation pour le jeton de requête à l'aide de l'API linkedin. Cependant, j'essaie j'obtenir toujours l'erreur:Linkedin - Code d'autorisation Exchange pour un jeton de demande

{ ["error_description"]=> string(107) "missing required parameters, includes an invalid parameter value, parameter more than once. : client_secret" ["error"]=> string(15) "invalid_request" }

Mon code ressemble:

public function authorization($authCode) 
    { 
     //define enviroment and path 
     $host = "https://www.linkedin.com/uas/oauth2/accessToken"; 

     // Generate urlencode data 
     $data_string = 'grant_type=authorization_code'; 
     $data_string .= '&code='.$authCode; 
     $data_string .= '&redirect_uri='.redirectUrl; 
     $data_string .= '&client_id='.publicKey; 
     $data_string .= '&client_secret'.secretKey; 
     var_dump($data_string); 


     // set up the curl resource 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $host); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
     curl_setopt($ch, CURLOPT_HEADER, false); 
     curl_setopt($ch, CURLOPT_VERBOSE, true); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Content-Type: application/x-www-form-urlencoded', 
     )); 

     // execute the request 
     $output = curl_exec($ch); 

     //echo($output) . PHP_EOL; 
     $output = json_decode($output); 
     var_dump($output); 

     echo $output->access_token; 

     // close curl resource to free up system resources 
     curl_close($ch); 
    } 

simples appels de auj est comme:

if(!empty($_GET['code'])) 
{ 
    $state = $_GET['state']; 
    $authCode = $_GET['code']; 
    $LinkedIn->authorization($authCode); 
} 

J'essaie de faire cette demande en utilisant mes données via le facteur et je reçois le jeton Access avec succès, donc j'ai un bug ici que je ne peux pas voir.

Est-ce que quelqu'un ici peut me conseiller ce que je fais mal? Merci

Répondre

3

Je pense que vous avez besoin de mettre un « égal » signe après client_secret

$data_string .= '&client_id='.publicKey; 
$data_string .= '&client_secret='.secretKey; 
var_dump($data_string); 
+0

Et mettre un '$' avant le nom de la variable, sinon ils seront interprétés comme des constantes – Federkun

+0

Salut Federico ils sont des constantes C'est okey, mais je me sens vraiment boiteux de manquer que «égal à». Merci @littlebex – Andurit

+0

@Andurit Est-ce que cela a résolu votre problème? – littleibex