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