[Plugin tiers] Sure Petcare

Pas besoin d’un mac un PC fera très bien l’affaire.
Je laisse @kimagure te guider.

Voila je viens de publier une nouvelle version pour ceux qui ont le distributeur.
Pour (essayer !) de récupérer des infos intéressantes il faut que les logs soient en debug et il faut faire une synchronisation (sans synchro je ne verrai rien d’intéressant)
La ligne qui m’intéresse dans les logs est celle qui contient « Result me/start : » attention elle est très longue il me la faut en entier.
Cette nouvelle version n’apporte rien de plus et comme elle fait des appels en plus au serveur je ne conseille pas aux autres utilisateurs du plugin de faire la mise à jour.

Voici une procédure pour utiliser Fiddler sur Windows avec un iPhone pour capturer les appels API d’une application.

Désolé, j’ai fait ça rapidement, donc pas de screenshots.

Si quelque chose n’est pas clair, j’essayerai de compléter :
Fiddler.pdf (479,5 Ko)

Ta procédure me parait claire. Je vais me lancer sur cela demain car j’aurai le temps de faire ces manip car en rtt et donc la gamelle a portée de main

J’ai bien fait la synchro après l’installation de la dernière version mais pas une seule fois “Result me/start :” dans les logs

Tu es sûr ? Si tu as bien la version du 2019-10-15 (beta ou stable çà n’a pas d’importance) et si tu es bien en debug je ne comprends pas comment c’est possible que tu n’ai pas cette ligne lorsque tu fais une synchronisation.

Bon au cas où j’aurais fait une bêtise hier j’ai repoussé la même version sur le market mais je ne comprends vraiment pas comment la ligne pourrait ne pas être écrite dans les logs quand on fait une synchro (même si le serveur retourne une réponse vide ou un message d’erreur on devrait voir quelque chose).
Et j’ai testé sur un Jeedom çà marche.

Quand je configure le proxy sur mon iPhone j’ai pas la case à cocher « Allow remote computers to connect »

Effectivement, erreur dans la doc. C’est sur Fiddler qu’il faut cocher la case (dans l’onglet « Connection », le même ou on configure le port). Par défaut, Fiddler n’enregistre que les requêtes locales. Pour permettre l’enregistrement des requêtes provenant de l’iphone (du réseau), il faut que cette case soit cochée.

J’ai mis à jour la doc dans mon message précédent.

En fait je viens de réaliser qu’on n’a pas besoin de smartphone. Une fois Fiddler installé et que https est configuré et le root certificate est installé sur le PC il suffit d’ouvrir un navigateur et de se connecter au site https://www.surepetcare.io et c’est bon on sniffe tout le traffic

Tiens, bonne découverte.

C’est étonnant que l’application web fonctionne avec des appels asynchrones comme l’appli mobile. En général, les interfaces web fonctionnent en mode « tout serveur »…

Du coup, c’est effectivement plus simple comme ça, à conditions que toutes les fonctionnalités soient disponibles sur les 2 interfaces…

La doc n’est pas perdue, elle est réutilisable pour toute application web qui fonctionne via des appels à une API distante…

K.

En fait j’ai fait les deux en essayant de voir s’il y a des différences.
J’espère que Yannick va y arriver car vraiment avec çà on a tout le dialogue et donc on va découvrir tous les appels possibles.
déjà j’ai découvert pour les animaux des with que je ne connaissais pas

/api/pet?with[]=photo&with[]=breed&with[]=conditions&with[]=tag&with[]=food_type&with[]=species&with[]=position&with[]=status

En y réfléchissant je pense que je vais pouvoir réduire beaucoup le nombre de requêtes au serveur par exemple dans le cron une requête pour tous les équipements et un pour tous les animaux alors que maintenant un requête par équipement et 2 par animal.
Cela nous évitera certainement de nous faire blackbouler du serveur s’il installent une limite du nombre de requêtes à l’avenir.
Bien sûr pour cela je vais devoir réorganiser mon code mais je pense que cela vaut le coup.

Et ta doc est super. A conserver !

J’ai reussi a faire des logs mais j’avais pas vu tous vos messages. Donc après avoir bataillé et cherché sur le net pour cette case non présente j’ai fait quelques log que j’ai envoyé par email.

Si besoin de plus ou que j’ai pas prit ce qu’il faut dit le et je recommence.
Maintenant que je maitrise
Par contre j’avais des logs que quand j’ouvre l’appli sur l’iPhone, pas de log quand le serveur du fabriquant envoie des notifications.

Bien reçu les logs.
Pas facile de tout explorer mais si je lis correctement, le bon with à rajouter est

&with[]=weights

Et bien que ce soit assez logique j’avoue que je n’y aurais sans doute pas pensé tout seul.
Par contre la structure qui suit semble assez complexe donc il nous faudra un peu de temps pour la comprendre et des essais en ajoutant de la nourriture.
Pour voir si j’ai vu juste je viens de publier une nouvelle version qui logue ce nouvel appel.
Je suis curieux de voir le log (dans Jeedom, pas besoin de Fiddler).

Bon en relisant les logs j’ai un petit doute car il y a des weights au pluriel et des weight au singulier donc je viens de pousser à nouveau une version sur le market avec un test pour chaque.

Oui, via le proxy, tu n’as que les échanges HTTP(s) initiés depuis le mobile.

Les push notifications entrantes passent par un autre canal (ce n’est pas du HTTP).
C’est le serveur de SurePetcare qui envoie directement la notification à l’iphone, sans interaction avec l’application
Mais normalement, il n’y a rien de plus dans la notif que le message (visible dans la notification) et un lien permettant d’ouvrir l’application sur une page/un item précis.

K.

Je viens de faire de nouveaux log mais il te faut installer fiddler.
Deux fichier envoyés: un que du remplissage de gamelle
L’autre remplissage avec quelques grammes et dégustation par la louloute.

En tout cas bonne expérience pour moi et merci @kimagure pour ton tuto

Pas d problème car j’ai Fiddler installé depuis ce matin.
C’est dingue mais lors du remplissage de la gamelle je ne vois q’un appel à la timeline et un aux reports mais pas d’appel au device ce qui m’aurait bien aidé. Et en plus comme je ne connais pas l’interface de l’app pour le distributeur je ne sais pas trop te dire sur quelle page tu dois aller avant et après remplissage.
Je vais attendre que tu puisse installer la nouvelle version et voir ce que donne mes appels à weight et weights.