Hello la communauté,
Utilisateur du plugin ima Protect mais triste de ne pas pouvoir piloter mon alarme avec je me suis un peu pencher sur le code du plugin et sur ce que IMA Protect pouvait exposer … j’ai réussi a consommer leur WS pour changer le statut de l’alarme … … depuis Postman … je me suis donc dit c’est gagné avec Jeedom … et la mes compétences PHP m’ont rattrapée …et oui elles sont quasi inexistante … … du coup je vous demande un peu d’aide … l’opération du ws à invoquer est un put, j’ai réussit à bye passer le problème de cross domaine …xscrf … mais la je me heurte à l’alimentation du body qui est tout le temps vide … … du coup j’ai un bad request exception … a mon avis c’est un problème basique dans un appel curl en php mais après pleins de googlelisation et de tests je n’y arrive pas.
Ci dessous mon code php :
$request_headers = array(
'X-CSRFToken: ' . $xcsfrToken,
'Referer: https://pilotageadistance.imateleassistance.com'
);
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_COOKIE, "sessionid=".$sessionId."; csrftoken=".$xcsfrToken);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($request_headers && !empty($request_headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
$string=implode(",",$request_headers);
log::add('alarme_IMA', 'debug', "Request headers $string");
}
$data = http_build_query([
'status' => 'off'
]);
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_PUTFIELDS, $data);
$result = curl_exec($ch);
Le code HTTP que j'obtiens est un 400 .. soit un badRequestException ...et le message "Bad status PUT param : None ... comme si rien n'était passé dans le body ... :thinking:
la réponse du serveur IMA est un 400 … du coup j’ai passé les couches d’authentification et de vérification de cross domain … c’est une erreur côté serveur qui me dit que le body n’a pas les bons paramètres ou que le body est vide … via postman je connais les bons paramètres … donc à priori le body est vide … est-il possible en php d’avoir un mode verbose sous jeedom et de voir le contenu de la requête … principalement le body
Avez-vous une idée ?
Chris9440
je suis bcp plus allaise avec le java … sinon je vais faire cela en java … via un déclenchement de script pearl ou bach …mais je prefererais faire cela en php…mais je maitrise pas du tout
Merci pour ton support et ton retour… le week end etant dedie a la famille je regarderais tout cela a tete reposee durant le week end…je ne manquerais pas de te tenir au courant
Bon week