Bonjour,
Je souhaiterais utiliser le client Zend_Rest_Client pour interroger l'API pikeo.
Il semblerait que j'ai 2 soucis au niveau des parameters à envoyer à l'API Pikéo
- l'API pikéo attends le parametre method avec comme valeur pikeo_test_echo
- Zend génére le parametre "arg1" automatiquement dans la requete envoyé à l'API pikéo. Le souci est que Pikéo semblerait refuser ma requete sous prétexte qu'il y a un parametre "arg1" qu'il ne connait pas (cf mon message d'erreur dans mon exemple ci dessous)
http://dev.pikeo.com/docs/API/pikeo_test_echo
Tiré de l'exemple de l'appel de l'API pikéo, il faudrait j'envoie ce genre de parametre ...
nonce=LTExMzA2OTIzMTc0NzMzODUzMw%3D%3D
×tamp=2007-12-11T15%3A29%3A08Z
&api_key=your_api_key&api_sig=DPt8EH7Ay0IpE63N5UBvkdkNiUk%3D
&method=pikeo.test.echo
J'obtiens comme réponse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 //initilisation des parametres : $nonce = base64_encode ("hghg" . rand(0,99999999) . "fkfk"); $api_key = 'mon_application'; $method = 'pikeo.test.echo'; $timestamp = date('Y-m-d\TH:m:s\Z'); $secret = 'mon_code_secret'; $api_sig = base64_encode ( sha1($nonce.$timestamp.$secret) ); $client = new Zend_Rest_Client('http://api.pikeo.com/services/pikeo/v2/rest'); //passage des parametres en post $client->method('pikeo.test.echo'); $client->nonce($nonce); $client->timestamp($timestamp); $client->api_key($api_key); $result = $client->post(); echo "<pre>"; print_r($result); echo "</pre>"; echo "<br/>resultat = " . $result->value();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Zend_Rest_Client_Result Object ( [_sxml:protected] => SimpleXMLElement Object ( [fault] => SimpleXMLElement Object ( [fault_code] => 5 [fault_message] => the parameter arg1 is unkown and should not be used ) ) )
http://framework.zend.com/manual/fr/...st.client.htmlVous noterez que le premier appel de $client->arg('value1'); a eu comme conséquence method=arg&arg1=value1 et arg=value1 ; ceci afin que Zend_Rest_Server puisse comprendre la demande correctement, plutôt que d'exiger la connaissance préalable du service.
Est ce que le parametre "method" est reservé à Zend ?
Comment puis désactivé la génération du parametre arg1 par Zend ?
Partager