Mon 1er script, besoin d'aide

Bonjour,

Ayant quelques notion de programmation VB, PHP, j’aimerai apprendre a me dépatouiller, sans avoir pour autant la prétention de réaliser des plugins Jeedom ( qui sais un jour peu être …) nécessitant beaucoup de temps et de labeur…

Pourquoi ? Ondilo on sortie une API (https://interop-dev.ondilo.com/docs/api/customer/v1/) et j’aimerai en attendant que quelqu’un développe un plugin, pouvoir accéder a cette API et voir se que je peu en faire.

Se que j’arrive à faire : me connecter à la page d’accueil ONDILO et obtenir le Code permettant de générer la clef token.

Apres je suis un peu perdu, il faut générée une requête POST afin de recevoir le token, et à partir de la on peu à peu près tous faire si l’on maitrise lol.

Comment procéder, en quel langage coder ? avez vous des tutoriels ? des exemples ?

J’entend parler de PHP, de JSON… je suis un peu perdu.

Merci à vous

1 « J'aime »

Hello Dede,

Moi je ferais ca en PHP ou javascript AJAX + PHP si tu as besoin du javascript.

Pour générer ta requête POST tu peux te servir de curl :

$ch = curl_init(); // tu initialise curl

tu regles tes options a personnaliser selon ton cas :

$optArray = array(
CURLOPT_URL => ‹ ton URL ›,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_RETURNTRANSFER => true
);

tu charges tes options dans curl :

curl_setopt_array($ch, $optArray);

et ensuite tu executes ta requete et tu stockes son resultat dans une variable que tu poura tester

$result = curl_exec($ch)

Et hop c’est bon.

Pour faire du POST tu vas juste regler les options de curl : CURLOPT_RETURNTRANSFER CURLOPT_POST CURLOPT_POSTFIELDS

Et voila.

Good luck

EDIT : Tu peux utiliser l’application POSTMAN pour tester tes requetes sans ecrire de code. Ca te permet de verifier avant d’ecrire ton code PHP.

Merci bcp… mais tu m’a déjà perdu mdr

Qu’est se que curl ?

@dede3828 Un peut de script en python pour commencer en mode débutant dédé ?

1 « J'aime »

Un petit tuto pour curl en plus de ce que @olive t’a deja conseillé. https://phpenthusiast.com/blog/five-php-curl-examples

J’ai trouver un auto piton sur openclass room, faut que j’apprenne les bases…

Petite question à vous les développeurs, avec quel language programmée vous vos plugin ? Pourquoi un langage plutôt qu’un autre ?

Merci

Pour ma part en Python tu beaucoup d’excellents tuto sur le net certains en vidéo te en français pour ce qui concerne python Graven a en a toute une sérié …
Ca vas des bases a des hauts niveau.

voici le lien vers la 1 ere des nombreuses …

pour le reste tu fait g**gle python tutorial python graven français

J’ai ouvert quelque fichier de plugin jeedom, et tout se que j’ai vu est coder en php… je suis un peu perdu… python ou php ? lol

Pour le choix ça depend de ce que tu veux faire.

Si tu veux faire un plugin tu devras faire au moins un peu de Php, c’est le langage principal de Jeedom (avec le html + Javascript cote client). Mais après une fois que la structure de ton plugin est faite tu peux mixer les langages python, bash, C, Javascript etc… tout ce que ton serveur peut exécuter. En fait ton plugin en php va appeler un script ou un programme qui sera écrit dans le langage que tu veux.

Si tu veux faire un widget tu n’as le choix, il te faut un langage que ton navigateur peux exécuter, ça sera du html + css + Javascript avec le framework Jquery (ça simplifie bcp certaines actions).

Si tu veux juste faire un script tu es plus libre. Python, php, bash etc… mais je ne suis pas un expert des scripts donc je n’en parlerais pas trop.

Au final le langage n’a vraiment d’importance, une fois que tu as un peu de bouteille tu peux rapidement t’adapter a tous les langages. (Sauf exception de truc vraiment étrange). Le python est sympa pour commencer il te donnera les bases et te permettra de faire bcp de chose en script, et c’est un langage que tu pourra utiliser en dehors de jeedom pour d’autres projets. Après si tu veux écrire un plugin jeedom , le php est indispensable.

Good luck

2 « J'aime »

Petite question, dans mon script, j’utilise cette ligne :

response_token = requests.request("POST", url_token, data=payload_token, headers=headers_token)

en lisant un peu a droite à gauche, la plus part des site écrirais comme cela :

r = requests.POST( url_token, data=payload_token, headers=headers_token)

y a t’il une différence ?

La différence est plus dans la méthode d’importation

si tu fait
import requests
tu vas devoir désigner l’objet complet
requests.request…
si tu fait
from requests import request
tu peut faire directement
request…

C’est comment je déclare mes module c’est ca ? ici le module requests

Sinon comment tester un programme python ?

dans jeedom on ne vois rien de se qu’il se passe, j’aimerai bien un debuger… j’ai télécharger IDLE si tu connais, on peu taper ligne par lignent les exécuter, mais je n’arrive pas a faire un 'import requests', il me renvoie un message d’erreur …

Capture d’écran 2020-05-12 à 08.35.30

Tu n’est pas dans la bonne version de python
utilise une console tape python3 au lieu de python

regarde je te donne 2 exemples un en python2 et un en python3
on retrouve bien sur la première l’erreur que tu a.

magique non ?

Ca ne marche pas pour moi…
Capture d’écran 2020-05-12 à 08.52.23

Je suis sur IDLE, sur quoi a tu taper ces commandes ? Invite de commande de ton PY ??

oui une fois sous python3 au prompt

>>> ne tape pas python ...
>>> import requests
>>>

Je ne comprend pas tout se que tu me dis… désolé

Capture d’écran 2020-05-12 à 08.58.25

essai urequests a la place de requests et dit moi …

la meme

Capture d’écran 2020-05-12 à 09.01.36

bizard la tu est sous mac la lib a pas l’air d’existé

on va tester un truc ouvre un terminal sur ton mac
fait
ssh nom@ip
de ton jeedom
puis python3
puis au prompt

>>> import requests

peut être le python de ton mac a pas toutes les librairies
( on vois ca aprés cet essai)