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
&timestamp=2007-12-11T15%3A29%3A08Z
&api_key=your_api_key&api_sig=DPt8EH7Ay0IpE63N5UBvkdkNiUk%3D
&method=pikeo.test.echo



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();
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
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
                )

        )

)

Vous 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.
http://framework.zend.com/manual/fr/...st.client.html

Est ce que le parametre "method" est reservé à Zend ?

Comment puis désactivé la génération du parametre arg1 par Zend ?