[RESOLU] [API][Curl][Amadeus] Connexion a une api en php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] [API][Curl][Amadeus] Connexion a une api en php

Re: [RESOLU] [API][Curl][Amadeus] Connexion a une api en php

par Flashneo » 10 juin 2019, 21:27

Oui effectivement tu as raison, je n'ai même pas vraiment lu l'erreur :/
C'est vrai la doc c'est super important, je suis encore en cours pour apprendre le dev et je regrette qu'on est pas de cours pour apprendre à utiliser la documentation car effectivement quand elle est bien faite on trouve toute les réponses dedans.

Encore merci pour ton aide et ta réactivité, tu m'as sauvé d'une grosse prise de tête ^^

Re: [RESOLU] [API][Curl][Amadeus] Connexion a une api en php

par Saian » 10 juin 2019, 21:09

Ça c'est plus un message d'erreur comme quoi le paramètre n'est pas bon (le paramètre doit être la variable où tu stockes le retour du curl_init et faut à priori appeler curl_error avant de faire le curl_close sinon problème avec la ressource surement). Et j'ai corrigé mon message, avec curl_error tu aurais un message humainement compréhensible. Avec errno c'est le code d'erreur qui est retourné. La documentation php est quand même bien faite ça vaut le coup de la regarder régulièrement. ^^

Et je confirme aussi print_r(true) affiche 1 print_r(false) n'affiche rien. Le var_dump (var_dump($token)) lui t'aurait permis de voir le false. :P

Re: [RESOLU] [API][Curl][Amadeus] Connexion a une api en php

par Flashneo » 10 juin 2019, 21:03

Effectivement je viens de tester et j'ai eu ça :
Warning: curl_errno(): 2 is not a valid cURL handle resource in C:\wamp64\www\VolPeriod\api_connection.php on line 20

Re: [RESOLU] [API][Curl][Amadeus] Connexion a une api en php

par Saian » 10 juin 2019, 21:00

Bah en fait c'est que c'est une erreur curl qui ne lève pas d'erreur php et que tu aurais pu tester comme ceci dans ton code (le retour de curl_exec étant false si une erreur est survenue durant son exécution) :
$token = curl_exec($curls);
if (!$token) {
  echo curl_error($curls);
}

Re: [API][Curl][Amadeus] Connexion a une api en php

par Flashneo » 10 juin 2019, 20:58

Surement alors, mais c'est étrange que je n'avais rien d'afficher nul part ^^ En tout cas merci beaucoup de ton aide, je vais enfin pouvoir commencé à tester cette API xD

Re: [API][Curl][Amadeus] Connexion a une api en php

par Saian » 10 juin 2019, 20:55

Ok tu devais donc avoir un retour false sur curl_exec et une erreur SSL.
Et le code que j'ai ajouté dans mon message précédent t'aurais permis d'avoir l'erreur. ;)

EDIT : surement une question de configuration de CURL.

Re: [API][Curl][Amadeus] Connexion a une api en php

par Flashneo » 10 juin 2019, 20:53

Maintenant je me demande pourquoi j'ai besoin de cette ligne et pas toi ? ^^

Re: [API][Curl][Amadeus] Connexion a une api en php

par Flashneo » 10 juin 2019, 20:52

Merci beaucoup Saian, je viens d'ajouter cette ligne et ça fonctionne !!!

Re: [API][Curl][Amadeus] Connexion a une api en php

par Saian » 10 juin 2019, 20:50

Ah tiens peut être ajouter un
curl_setopt($curls, CURLOPT_SSL_VERIFYPEER, false);
.

En tout cas c'est bizarre le retour du curl_exec devrait au moins afficher 1 si pas d'erreur ou 0 si erreur. A moins que pour le false rien ne soit affiché.

Tu peux tester un :
$token = curl_exec($curls);
if (!$token) {
  echo curl_error($curls);
}
else {
  var_dump($token);
}

Re: [API][Curl][Amadeus] Connexion a une api en php

par Saian » 10 juin 2019, 20:46

Salut @rthur, le problème c'est que le code fonctionne depuis mon serveur mais pas depuis celui de Flashneo. Une idée ?

Re: [API][Curl][Amadeus] Connexion a une api en php

par @rthur » 10 juin 2019, 20:44

Ma recommandation serait surtout de tester l'API avec une appli comme Postman :
https://www.getpostman.com/postman

ça permet déjà d'éliminer tous les problèmes quand la doc n'est pas claire.
Une fois que tu as la réponse attendue dans Postman, tu peux même demander un export de cette requête de PHP-Curl et hop tu peux intégrer ce code dans ton appli

Re: [API][Curl][Amadeus] Connexion a une api en php

par Flashneo » 10 juin 2019, 20:39

Oui ça m'affiche bien "FIN" ^^

Re: [API][Curl][Amadeus] Connexion a une api en php

par Saian » 10 juin 2019, 20:14

Juste comme ça, si tu testes ce code :
$data = array(
    'grant_type' => 'client_credentials',
    'client_id' => '{Id_Key}',
    'client_secret' => '{Secret_Key}');
 
$curls = curl_init();
curl_setopt($curls, CURLOPT_URL, 'https://test.api.amadeus.com/v1/security/oauth2/token');
curl_setopt($curls, CURLOPT_POST, true);
curl_setopt($curls, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curls, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
$token = curl_exec($curls);
curl_close($curls);
echo 'FIN';
Ça affiche bien FIN ?

Re: [API][Curl][Amadeus] Connexion a une api en php

par Flashneo » 10 juin 2019, 19:39

Pourtant non aucun retour même avec le code que je t'ai partagé...

Edit: je t'ai envoyé un mp

Re: [API][Curl][Amadeus] Connexion a une api en php

par Saian » 10 juin 2019, 19:36

Dans ce cas tu devrais avoir un retour, j'ai copié ton code et j'ai toujours ce retour. Si tu veux le même met un paramètre non valide. A voir avec un client_id et client_secret valide ce qui est retourné mais ça je peux pas regarder à moins que tu me les communiques en MP.