cURL et eedomus

Discussion et échanges de scripts pour la box eedomus

cURL et eedomus

Messagepar rover820i » 21 Nov 2017 18:26

Hello tout le monde,

sauf erreur de ma part, il n'est pas possible d'utiliser les fonctions PHP cURL

J'ai développé un script très pratique mais qui ne peut se passer de la gestion des cookies pour un passage de page en page (variable de session obligatoire), car mon script va récupérer des valeurs sur un site pour les enregistrer sur eedomus (consommation d'eau relevée chaque jour pour les utilisateurs du site toutsurmoneau).

En l'état, il fonctionne parfaitement sur un serveur externe, mais l'idéal serait de pouvoir le proposer aux utilisateurs eedomus.

A ceux qui maîtrisent mieux les fonctions PHP spéciales eedomus que moi : la fonction httpQuery, implémentée sur eedomus, permet-elle ce que je souhaite faire ?

Merci d'avance :)
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: cURL et eedomus

Messagepar influman » 21 Nov 2017 18:41

j'ai l'impression qu'httpQuery est une surcouche maison de Curl...

il y a l'argument cookies dans httpQuery.
http://doc.eedomus.com/view/Scripts

Il faudrait montrer ton code actuel curl à la team, pour voir si c'est transposable
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: cURL et eedomus

Messagepar rover820i » 22 Nov 2017 11:54

C'est aussi l'impression que j'ai, mais je ne sais pas si la version modifiée de PHP sur eedomus garde la session cURL ouverte ou si elle en ouvre une nouvelle à chaque fois. Car dans le 2nd cas il y a des chances que ça ne passe pas.

Voici un extrait de mon script :

Code : Tout sélectionner
      $headers = array(
         "Accept: */*",
         "Connection: Keep-Alive",
      );
      $cookie_file = 'veolia_php_cookies_'.uniqid().'.txt';
    $ch = curl_init();
      curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
      curl_setopt($ch, CURLOPT_HEADER, FALSE);
      curl_setopt($ch, CURLOPT_NOBODY, FALSE);
      curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
      curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
      curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0");
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
      curl_setopt($ch, CURLOPT_URL, $login_page);
      curl_setopt($ch, CURLOPT_GET, TRUE);
      $response = curl_exec($ch);
    $csrf = explode('<input type="hidden" name="_csrf_token" value="', $response);
    $csrf = explode('" />', $csrf[1]);
      
      curl_setopt($ch, CURLOPT_URL, $login_page);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
      curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "_username=".$email_login."&_password=".$pwd_login."&_csrf_token=".$csrf[0]."&_remember_me_legacy=");
      $response2 = curl_exec($ch);
      
      curl_setopt($ch, CURLOPT_URL, $conso_data);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
      $response3 = curl_exec($ch);

      $data_page = str_replace(Array("YYYY", "MMMM"), Array(date("Y"), date("m")), $data_page);

      curl_setopt($ch, CURLOPT_URL, $data_page);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
      $response4 = curl_exec($ch);
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: cURL et eedomus

Messagepar eedomusbox » 22 Nov 2017 13:14

tiens c'est marrant j'ai fait le même script
eedomusbox
 
Messages : 887
Inscription : 12 Sep 2014
Localisation : 69

Re: cURL et eedomus

Messagepar rover820i » 22 Nov 2017 14:05

eedomusbox a écrit:tiens c'est marrant j'ai fait le même script

Pour Veolia ?
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: cURL et eedomus

Messagepar eedomusbox » 23 Nov 2017 06:32

Oui
eedomusbox
 
Messages : 887
Inscription : 12 Sep 2014
Localisation : 69

Re: cURL et eedomus

Messagepar rover820i » 23 Nov 2017 09:48

eedomusbox a écrit:Oui

:D

Tu t'es inspiré du script pour jeedom ?

Il tourne sur eedomus ou sur un serveur web indépendant ?
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: cURL et eedomus

Messagepar eedomusbox » 23 Nov 2017 11:37

Non je l'avait fait avant mais c'est à peu près pareil. Sauf que je ne récupère pas un Excel mais directement le json.
Il est sur un raspberry, j'utilise aussi le cURL.
Avant il tournait sur le site "eauenligne et maintenant sur toutsurmoneau"
eedomusbox
 
Messages : 887
Inscription : 12 Sep 2014
Localisation : 69

Re: cURL et eedomus

Messagepar rover820i » 23 Nov 2017 14:19

Je récupère aussi le JSON :)

J'ai commencé à essayer de transporter pour eedomus mais je tombe sur un problème de sécurité sur le site de veolia :

Site inaccessible depuis votre navigateur internet

Dans un souci de sécurisation de vos données, nous ne pouvons pas vous donner accès à notre site en raison de la version de votre navigateur internet.

Actuellement, vous utilisez un navigateur employant un protocole de sécurisation des données vulnérable (protocole SSLV3), peut-être parce que votre navigateur n’a pas été mis à jour récemment.

Cette faille de sécurité, nommée Poodle, permet la récupération partielle de données ex : Cookies, mots de passe…

Nous vous conseillons de mettre à jour votre navigateur internet afin de pouvoir accéder à notre site. Vous trouverez ci-dessous les fiches support relatives aux navigateurs Chrome, Firefox et Internet Explorer.

Si vous utilisez Google Chrome

Si vous utilisez Mozilla Firefox

Si vous utilisez Internet Explorer

Pour plus d’information sur ce sujet nous vous invitons à consulter la page gouvernementale dédiée :
www.cert.ssi.gouv.fr/site/CERTFR-2014-A ... E-007.html

http://www.cert.ssi.gouv.fr est le site du Centre gouvernemental de veille, d’alerte et de réponse aux attaques informatiques

Nous vous remercions de votre compréhension.



La 1ère partie du code source :
Code : Tout sélectionner
$headersList = array(
  "Accept: */*",
  "Connection: Keep-Alive",
);
$requete1 = httpQuery($login_page, 'GET', NULL, NULL, $headers = $headersList, true, false);
echo 'Retour : '.$requete1;
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: cURL et eedomus

Messagepar rover820i » 23 Nov 2017 15:49

Pour le moment, je l'ai hébergé sur mon serveur pour pouvoir l'utiliser.

Mais si quelqu'un a une idée pour le faire évoluer je suis preneur, je pense que ça peut intéresser du monde :)
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016

Re: cURL et eedomus

Messagepar eedomusbox » 03 Sep 2019 05:15

rover820i a écrit:Pour le moment, je l'ai hébergé sur mon serveur pour pouvoir l'utiliser.

Mais si quelqu'un a une idée pour le faire évoluer je suis preneur, je pense que ça peut intéresser du monde :)

Salut, il fonctionne encore ton script? depuis le 26/08, je n'ai plus de donné qui remonte.
eedomusbox
 
Messages : 887
Inscription : 12 Sep 2014
Localisation : 69

Re: cURL et eedomus

Messagepar rover820i » 03 Sep 2019 09:54

eedomusbox a écrit:Salut, il fonctionne encore ton script? depuis le 26/08, je n'ai plus de donné qui remonte.

Hello

Ca fait un moment que je ne l'utilise plus, je n'ai pas regardé. Mais veolia utilise un captcha google, ceci explique peut-être cela.
rover820i
 
Messages : 3363
Inscription : 23 Juil 2016


Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 13 invité(s)