Google shared locations - Betatest

@kaktusatomik : ca marche chez toi ? Moi j’ai un soucis sur l’authentification a ce niveau https://github.com/yoan-m/jeedom_gsl/blob/master/resources/google-location-sharing.js#L333 j’ai pas de set-cookie dans le header

Oui, ça fonctionne

[2018-08-02 12:13:08][DEBUG] : Starting google shared locations adapter
[2018-08-02 12:13:08][DEBUG] : First stage, connecting to Google ...
[2018-08-02 12:13:08][DEBUG] : Connection successful. Response: OK
[2018-08-02 12:13:08][DEBUG] : Connection successful. Saved connection cookies.
[2018-08-02 12:13:08][DEBUG] : Second stage, sending E-Mail address ...
[2018-08-02 12:13:08][DEBUG] : Connection successful. Response: OK
[2018-08-02 12:13:08][DEBUG] : Connection successful. Saved connection cookies.
[2018-08-02 12:13:08][DEBUG] : Third stage, sending password ...
[2018-08-02 12:13:08][DEBUG] : Connection successful. Response: Moved Temporarily
[2018-08-02 12:13:08][DEBUG] : Authentication successful, received new location URL: https://accounts.google.com/CheckCookie?checkedDomains=youtube&pstMsg=0&chtml=LoginDoneHtml&continue=https%3A%2F%2Faccounts.google.com%2FManageAccount&gidl=EgIIAA
[2018-08-02 12:13:08][DEBUG] : Connection successful. Response: Moved Temporarily
[2018-08-02 12:13:08][DEBUG] : Connection successful. Saved connection cookies.
[2018-08-02 12:13:08][DEBUG] : Connection successful. Response: OK
[2018-08-02 12:13:08][DEBUG] : Connection successful, and authorization OK.
[2018-08-02 12:13:08][INFO] : {"112865048336719586403":{"unix_time_now":1533204788,"id":"112865048336719586403","photoURL":"https:\/\/lh6.googleusercontent.com\/-LYk4V............

image

Chez moi c’est vide ca donc a mon avis google demande a valider la connexion avec un sms…

C’est ca je tombe dans ce cas improved login procedure · t4qjXH8N/ioBroker.google-sharedlocations@384dd00 · GitHub

Par contre pas trop d’information pour s’en sortir la…

Et dans le body de la response il n’y a rien pour nous aiguiller ?
J’ai ça de mon côté

"<HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="https://accounts.google.com/CheckCookie?checkedDomains=youtube&amp;pstMsg=0&amp;chtml=LoginDoneHtml&amp;continue=https%3A%2F%2Faccounts.google.com%2FManageAccount&amp;gidl=EgIIAA">here</A>.
</BODY>
</HTML>
"

Moi j’ai :

<HTML>\n<HEAD>\n<TITLE>Moved Temporarily</TITLE>\n</HEAD>\n<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n<H1>Moved Temporarily</H1>\nThe document has moved <A HREF=\"https://accounts.google.com/signin/selectchallenge/3?checkedDomains=youtube&amp;pstMsg=0&amp;TL=AHnYQLxzYUC-YXkwDhdMjmfnom4lUevg7gmM5GeDJZqURdg7KHUqnc2RWjiYh64NMrxM_HHEdjH2AvAQ6FGw4-ze8xhVlDuav-5rzBu-OJy6Rv-ZDc8Bcjyr4Iqe4G39eT1xDhuIhzj9r82tjpyrJE1u33OjweQw8DgHKWX4df_vZ76I0Ol4Xz4\">here</A>.\n</BODY>\n</HTML>\n

je viens de lancer l’installation à partir de ton git
j’ai une erreur execution de cron

[2018-08-02 12:48:05][ERROR] : Erreur sur la fonction cron du plugin : Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : /var/www/html/plugins/gsl/resources/google-location-sharing.js:89     for (var j = 0; j < users.length; j++) {                               ^  TypeError: Cannot read property 'length' of undefined     at emitUsers (/var/www/html/plugins/gsl/resources/google-location-sharing.js:89:31)     at /var/www/html/plugins/gsl/resources/google-location-sharing.js:129:21     at /var/www/html/plugins/gsl/resources/google-location-sharing.js:425:43     at parseLocationData (/var/www/html/plugins/gsl/resources/google-location-sharing.js:476:23)     at Request._callback (/var/www/html/plugins/gsl/resources/google-location-sharing.js:421:21)     at Request.self.callback (/var/www/html/plugins/gsl/resources/node_modules/request/request.js:185:22)     at emitTwo (events.js:126:13)     at Request.emit (events.js:214:7)     at Request.<anonymous> (/var/www/html/plugins/gsl/resources/node_modules/request/request.js:1157:10)     at emitOne (events.js:116:13)

Ok j’ai réussi alors faudra le mettre dans la doc mais pour débloquer la situation je me suis connecter a sur le compte google avec la même ip que jeedom a en sortie et la c’est passé.

La sécurité ce fait donc sur l’ip public.

Bien joué, il fallait la trouver.

As tu des contacts qui partagent leur position avec le compte configuré ?
Je vais ajouter une protection sur la variable users undefined

C’est bon ca marche chez moi j’ai envoyé une correction sur mon code j’ai fait le PR par contre il peut pas se faire tout seul mais j’ai en vrai touché que le fichier de class pas le node js donc tu peux ne pas prendre les modification du nodejs.

Par contre dans mes test j’ai detecté un soucis si l’authentification échoue aucune log n’est ecrite car on sort du fichier nodejs avant le console.log(JSON.stringify(result)); de la fonction emitUsers

non personne

Je vais regarder pour améliorer le widget (3 fois rien car il est déja top comme ca)

Merci pour ton aide.
J’ai push un fix pour le log lors de l’échec de l’authentification

bon je pense que je m’étais un peu embrouillé avec mes différents compte gmail
je viens de reprendre la config
voilà où j’en suis maintenant


[2018-08-02 13:30:04][ERROR] : Erreur sur la fonction cron du plugin : Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails :
[2018-08-02 13:31:03][ERROR] : Erreur sur la fonction cron du plugin : Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails :
[2018-08-02 13:31:22][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=gsl function=pre_update callInstallFunction=1
[2018-08-02 13:31:26][INFO] : Début d'activation du plugin
[2018-08-02 13:31:27][INFO] : Info sur le démon : Array (     [launchable_message] =>      [launchable] => nok     [state] => nok     [log] => nok     [auto] => 0 )
[2018-08-02 13:31:27][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=gsl function=update callInstallFunction=1
[2018-08-02 13:32:04][ERROR] : Erreur sur la fonction cron du plugin : Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : {"log":[{"type":"debug","value":"Starting google shared locations adapter"},{"type":"debug","value":"First stage, connecting to Google ..."},{"type":"debug","value":"Connection successful. Response: OK"},{"type":"debug","value":"Connection successful. Saved connection cookies."},{"type":"debug","value":"Second stage, sending E-Mail address ..."},{"type":"debug","value":"Connection successful. Response: Moved Temporarily"},{"type":"error","value":"Connection works, but authorization failure (wrong password?)!"},{"type":"error","value":"Second stage (auth user) error"},{"type":"error","value":"Error"}],"result":{}}
[2018-08-02 13:33:04][ERROR] : Erreur sur la fonction cron du plugin : Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : {"log":[{"type":"debug","value":"Starting google shared locations adapter"},{"type":"debug","value":"First stage, connecting to Google ..."},{"type":"debug","value":"Connection successful. Response: OK"},{"type":"debug","value":"Connection successful. Saved connection cookies."},{"type":"debug","value":"Second stage, sending E-Mail address ..."},{"type":"debug","value":"Connection successful. Response: Moved Temporarily"},{"type":"error","value":"Connection works, but authorization failure (wrong password?)!"},{"type":"error","value":"Second stage (auth user) error"},{"type":"error","value":"Error"}],"result":{}}
[2018-08-02 13:34:03][ERROR] : Erreur sur la fonction cron du plugin : Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : {"log":[{"type":"debug","value":"Starting google shared locations adapter"},{"type":"debug","value":"First stage, connecting to Google ..."},{"type":"debug","value":"Connection successful. Response: OK"},{"type":"debug","value":"Connection successful. Saved connection cookies."},{"type":"debug","value":"Second stage, sending E-Mail address ..."},{"type":"debug","value":"Connection successful. Response: Moved Temporarily"},{"type":"error","value":"Connection works, but authorization failure (wrong password?)!"},{"type":"error","value":"Second stage (auth user) error"},{"type":"error","value":"Error"}],"result":{}}

OK ça ressemble à l’erreur de Loic.
As tu essayé de te connecter à ton compte Google depuis la même ip publique que ton jeedom ?

oui oui ,
là je suis à mon domicile donc mm ip publique
je vois d’ailleurs bien le partage quand je me connecte

Mise jour faite…

mon log

[2018-08-02 14:25:55][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=gsl function=pre_update callInstallFunction=1
[2018-08-02 14:25:56][INFO] : Début d'activation du plugin
[2018-08-02 14:25:57][INFO] : Info sur le démon : Array (     [launchable_message] =>      [launchable] => nok     [state] => nok     [log] => nok     [auto] => 0 ) 
[2018-08-02 14:25:57][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=gsl function=update callInstallFunction=1
[2018-08-02 14:26:03][ERROR] : Erreur sur la fonction cron du plugin : Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : module.js:549     throw err;     ^  Error: Cannot find module 'request'     at Function.Module._resolveFilename (module.js:547:15)     at Function.Module._load (module.js:474:25)     at Module.require (module.js:596:17)     at require (internal/module.js:11:18)     at Object.<anonymous> (/var/www/html/plugins/gsl/resources/google-location-sharing.js:22:17)     at Module._compile (module.js:652:30)     at Object.Module._extensions..js (module.js:663:10)     at Module.load (module.js:565:32)     at tryModuleLoad (module.js:505:12)     at Function.Module._load (module.js:497:3)
[2018-08-02 14:27:04][ERROR] : Erreur sur la fonction cron du plugin : Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : 
[2018-08-02 14:28:04][ERROR] : Erreur sur la fonction cron du plugin : Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : 

je sais pas si c utile mais voila le log update

********************************************************
*             Installation des dépendances             *
********************************************************
Version actuelle : 8
Ign:1 http://ftp.fr.debian.org/debian stretch InRelease
Atteint:2 http://security.debian.org/debian-security stretch/updates InRelease
Réception de:3 http://ftp.fr.debian.org/debian stretch-updates InRelease [91,0 kB]
Atteint:4 http://ftp.fr.debian.org/debian stretch Release
Atteint:5 https://deb.nodesource.com/node_8.x stretch InRelease
91,0 ko réceptionnés en 1s (59,8 ko/s)
Lecture des listes de paquets…
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
lsb-release is already the newest version (9.20161125).
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
  libuv1
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Ok, version suffisante
added 46 packages in 4.787s
********************************************************
*             Installation terminée                    *
********************************************************
Version actuelle : 8
Atteint:1 http://security.debian.org/debian-security stretch/updates InRelease
Ign:2 http://ftp.fr.debian.org/debian stretch InRelease
Atteint:3 http://ftp.fr.debian.org/debian stretch-updates InRelease
Atteint:4 http://ftp.fr.debian.org/debian stretch Release
Atteint:5 https://deb.nodesource.com/node_8.x stretch InRelease
Lecture des listes de paquets…
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
lsb-release is already the newest version (9.20161125).
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
  libuv1
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Ok, version suffisante
added 46 packages in 2.889s
rm: impossible de supprimer '/tmp/jeedom/gsl/dependance': Aucun fichier ou dossier de ce type
Fin de l'installation

tu devrais prendre la version qui est sur le git de kaktusatomik , la log sera plus parlante sur l’erreur que tu as

Je vais passer pour un boulet, mais on en apprend tous les jours… comment je fais ça…