Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous je souhaite remplacer ce code qui fonctionne parfaitement :
<?php $rpxApiKey = 'REPLACE_WITH_YOUR_RPX_API_KEY'; if(isset($_POST['token'])) { $token = $_POST['token']; /* Use the token to make the auth_info API call */ $post_data = array('token' => $_POST['token'], 'apiKey' => $rpxApiKey, 'format' => 'json'); $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_URL, 'https://rpxnow.com/api/v2/auth_info'); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $raw_json = curl_exec($curl); curl_close($curl); /* STEP 3: Parse the JSON auth_info response */ $auth_info = json_decode($raw_json, true); if ($auth_info['stat'] == 'ok') { /* STEP 3 Continued: Extract the 'identifier' from the response */ $profile = $auth_info['profile']; // etc... } } ?>
Par ce code qui ne fonctionne pas xD . L'erreur retourné est une erreur au niveau du passage de clé d'api qui n'est apparement pas transmis, bien que configuré ici : CURLOPT_POSTFIELDS => $post_data , de la même façon que le code ci-dessous.
<?php $rpxApiKey = 'REPLACE_WITH_YOUR_RPX_API_KEY'; if(isset($this->getRequest()->getPost('token')) { $token = $this->getRequest()->getPost('token'), ; $post_data = array('token' => $_POST['token'], 'apiKey' => $rpxApiKey, 'format' => 'json'); /* Use the token to make the auth_info API call */ $config = array( 'adapter' => 'Zend_Http_Client_Adapter_Curl', 'curloptions' => array(CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => 'https://rpxnow.com/api/v2/auth_info', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $post_data, CURLOPT_HEADER => false, CURLOPT_SSL_VERIFYPEER => false), ); $client = new Zend_Http_Client($uri, $config); $result = $client->request(); $auth_info = json_decode($result, true); if ($auth_info['stat'] == 'ok') { /* STEP 3 Continued: Extract the 'identifier' from the response */ $profile = $auth_info['profile']; // etc... } } ?>
Quelqu'un à t-il une idée? Merci d'avance pour votre aide.
Hors ligne
$uri n'existe pas
tu appelle donc
new Zend_Http_Client(null, $config);
sinon comme ça je ne vois pas
A+JYT
Hors ligne
Oui, en faite j'ai refais le code de tête au bureau :$,dans la version que j'ai chez moi j'utilise bien un $uri, pardon :$
Je comprend pas pourquoi il me retourne une erreur de clé non transmisse. Merci de t'être penché dessus
Dernière modification par shadypierre (20-01-2011 14:32:35)
Hors ligne
j'ai vraiment besoin d'un petit coup de main
Hors ligne
Tu peux nous renvoyer le code et le message d'erreur complet ? (si tu as une pile d'erreur, la pile complète)
A+, Philippe
Hors ligne
Voici la code exact que j'execute :
if ($this->getRequest()->getPost('token')) { /* STEP 1: Extract token POST parameter */ $token = $this->getRequest()->getPost('token'); /* STEP 2: Use the token to make the auth_info API call */ $post_data = array('token' => $token, 'apiKey' => $rpxApiKey, 'format' => 'json'); $uri = 'https://rpxnow.com/api/v2/auth_info'; $config = array( 'adapter' => 'Zend_Http_Client_Adapter_Curl', 'curloptions' => array(CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $post_data, CURLOPT_HEADER => false, CURLOPT_SSL_VERIFYPEER => false ), ); $client = new Zend_Http_Client($uri, $config); $result = $client->request(); /* STEP 3: Parse the JSON auth_info response */ print_r($result); }
Et j'obtiens :
Zend_Http_Response Object ( [version:protected] => 1.1 [code:protected] => 200 [message:protected] => OK [headers:protected] => Array ( [Server] => nginx [Date] => Mon, 24 Jan 2011 11:55:38 GMT [Content-type] => text/javascript; charset=utf-8 [Connection] => close [Set-cookie] => _accelerator_session_id=41e8d0f76699755b2201cfd19cd6292d; path=/ [Status] => 200 OK [Etag] => "e0f599c4216fdf871c3b73d87843148c" [X-runtime] => 4ms [Content-length] => 66 [Cache-control] => private, max-age=0, must-revalidate [P3p] => CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT" ) [body:protected] => {"err":{"msg":"Missing parameter: apiKey","code":0},"stat":"fail"} )
Merci
Hors ligne
Pas la moindre piste ???
Hors ligne
UP :$
Hors ligne
Salut,
$rpxApiKey contient ma clé d'API et elle est bien défini juste au dessus (et j'ai déja essayé de l'écrire en dure directement). Mais rien à faire j'ai tjr la meme erreur
Hors ligne
Et si tu faisais plutôt ça, au lieu de passer tes paramètres POST à curl, tu passes à zend_http_client avec la méthode setParameter ?
if ($this->getRequest()->getPost('token')) { /* STEP 1: Extract token POST parameter */ $token = $this->getRequest()->getPost('token'); /* STEP 2: Use the token to make the auth_info API call */ $post_data = array('token' => $token, 'apiKey' => $rpxApiKey, 'format' => 'json'); $uri = 'https://rpxnow.com/api/v2/auth_info'; $config = array( 'adapter' => 'Zend_Http_Client_Adapter_Curl', 'curloptions' => array(CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HEADER => false, CURLOPT_SSL_VERIFYPEER => false ), ); $client = new Zend_Http_Client($uri, $config); $client->setParameter($post_data); $result = $client->request(); /* STEP 3: Parse the JSON auth_info response */ print_r($result); }
Hors ligne
Non ça n'a rien donné, dsl j'avais omis de répondre. Du coup j'ai laissé comme ça et je suis passé à la suite pour le moment
Hors ligne
Ça pourra peut être servir à quelqu'un, j'ai retravaillé avec curl et j'ai trouvé mon erreur, j'avais simplement oublié le ->getBody(), ce qui donne donc :
$client->request()->getBody();
Hors ligne