PnX-SI / gn_mobile_occtax

Application mobile pour la saisie dans le module Occtax de GeoNature
GNU General Public License v3.0
13 stars 4 forks source link

Connexion occtax mobile échec synchronisation #115

Closed RNF-SI closed 2 years ago

RNF-SI commented 2 years ago

Ma configuration de GeoNature se fait avec un Foreign Data Wrapper, où mon schema utilisateurs est un Foreign Schema d'une autre instance GeoNature.

Je pense donc que c'est probablement l'origine de mon problème de connexion sur sync.

Lorsque je rentre mes identifiants, il indique "authentification réussie", puis me demande aussitôt de ressaisir mes identifiants, alors que je suis indiqué comme connecté. Dans le fichier settings.json de sync, j'ai indiqué le bon ID de UsersHub, mais geonature mobile a t'il besoin d'y accéder réellement, sachant qu'on ne rentre pas l'url de UsersHub ? Est ce que ça pourrait être mon problème ?

J'ai tenté de récupérer les logs de mon mobile comme indiqué, mais adb devices ne renvoie rien, et il semble après recherche que ça soit compliqué de paramétrer ça sur mon mobile, un OnePlus 7T...

Le log de geonature me renvoie le message suivant :

Invalid token: the token not corespoding to the current app
camillemonchicourt commented 2 years ago

Salut, je ne vois pas pourquoi le FDW poserait de soucis sur Occtax-mobile car il n'interagit qu'avec l'API de GeoNature.

Éventuellement tu peux tester la nouvelle version en test sur laquelle nous travaillons actuellement : https://geonature.fr/data/maps/occtax-2.0.0-generic-debug.apk Il s'agit d'une v2 d'Occtax-mobile où Sync-mobile et Occtax-mobile ont été fusionné (https://github.com/PnX-SI/gn_mobile_occtax/issues/94) pour ne plus avoir qu'une seule application à installer et gérer.

L'autre nouveauté est qu'elle écrit les logs directement sur le terminal (https://github.com/PnX-SI/gn_mobile_occtax/issues/112).

Il te suffit de télécharger l'APK, l'installer sur un appareil, renseigner l'URL de ton GN et de ton TH et ensuite de te connecter. Il faut que tu aies bien complété avant le fichier settings.json sur ton serveur GeoNature dans backend/static/mobile/occtax avec la nouvelle partie sync vu qu'on a maintenant plus qu'une seule application. Exemple dans la branche de développement de cette nouvelle version : https://github.com/PnX-SI/gn_mobile_occtax/tree/feature/v2#settings

Dans cette nouvelle version, il y a aussi tout une nouvelle doc avec des schémas qui présentent le processus et les routes de l'API utilisées que tu peux tester dans ton navigateur : https://github.com/PnX-SI/gn_mobile_core/blob/develop/docs/data_sync.adoc

Ainsi que les inputs : https://github.com/PnX-SI/gn_mobile_occtax/blob/feature/v2/docs/input_workflow.adoc

Et l'architecture globale : https://github.com/PnX-SI/gn_mobile_occtax/blob/feature/v2/docs/installation-fr.adoc

RNF-SI commented 2 years ago

Merci pour ces infos, j'avais pas réalisé que la nouvelle version arrivait si vite ! C'est chouette !

Petites remarques sur le tuto, une erreur dans la commande suivante indiquée : aapt dump badging applicationfile.apk | grep -Po "(?<=\sversion(Code|Name)'='')([0-9.]+)" au lieu de : aapt dump badging applicationfile.apk | grep -Po "(?<=\sversion(Code|Name)=')([0-9.]+)"

Ensuite, lors du lancement de l'application, ça ne me chargeait pas mon fichier settings.json depuis le serveur, alors que l'api semble bien répondre, et ça renvoi le log suivant :

18:56:19.501 INFO: [fr.geonature.occtax.MainApplication] starting fr.geonature.occtax...
18:56:19.502 INFO: [fr.geonature.occtax.MainApplication] logs directory: '/storage/emulated/0/Android/data/fr.geonature.occtax/logs'
18:56:19.503 INFO: [fr.geonature.occtax.MainApplication] internal storage: 'MountPoint(mountPath=/storage/emulated/0, storageType=INTERNAL)'
18:56:19.504 INFO: [fr.geonature.occtax.MainApplication] external storage: 'null'
18:56:19.806 INFO: [fr.geonature.commons.settings.AppSettingsManagerImpl] loading settings from URI 'content://fr.geonature.occtax.provider/settings/settings_occtax.json'...
18:56:19.810 INFO: [fr.geonature.commons.settings.AppSettingsManagerImpl] loading settings from '/storage/emulate
d/0/Android/data/fr.geonature.occtax/settings_occtax.json'...
18:56:19.811 WARN: [fr.geonature.commons.settings.AppSettingsManagerImpl] '/storage/emulated/0/Android/data/fr.geonature.occtax/settings_occtax.json' not found
18:56:19.811 WARN: [fr.geonature.commons.settings.AppSettingsManagerImpl] failed to load 'settings_occtax.json'
18:56:19.938 INFO: [fr.geonature.occtax.ui.home.HomeActivity] failed to load settings
18:56:20.077 INFO: [fr.geonature.datasync.packageinfo.worker.CheckInputsToSynchronizeWorker] available inputs to synchronize: 0

J'ai donc manuellement copié mon fichier settings.json dans android/data/fr.geonature.occtax (en le renommant settings_occtax.json). Il m'a donc demandé de m'authentifier sur l'application, et là j'ai obtenu exactement le même problème qu'avec la version 1.3.0 de l'application. Il s'agirait donc d'un bug serveur... la seule différence c'est que je n'ai pas de log sur geonature.log.

J'ai mis une petite capture d'écran pour visualiser le problème :

https://user-images.githubusercontent.com/43465924/157301185-f015742d-2c69-4b5f-a236-bbd5e53b6c92.mp4

DonovanMaillard commented 2 years ago

bonjour,

pouvez vous vérifier dans les paramètres du terminal que votre application occtax a bien les autorisations nécessaires ? par défaut ce n'est pas le cas...

RNF-SI commented 2 years ago

En effet je n'ai aucune autorisation accordée à l'application... mais je doute que ça soit ça le problème étant donné que j'avais testé l'install avec l'instance demo de geonature et ça fonctionnait sans problème. Il me semble qu'il demande les autorisations après. Comment faire sinon pour forcer les autorisations et lesquelles ?

camillemonchicourt commented 2 years ago

Je ne sais pas pourquoi ton appareil n'a pas réussi à récupérer le fichier de conf sur le serveur. Aucun soucis lors de nos tests sur le serveur de DEMO.

Et concernant la connexion/déconnexion peux-tu partager les logs de l'application mobile à ce moment-là ?

RNF-SI commented 2 years ago

Voici les logs d'un nouvel essai ce matin :

09:11:01.187 INFO: [fr.geonature.occtax.MainApplication] starting fr.geonature.occtax...
09:11:01.188 INFO: [fr.geonature.occtax.MainApplication] logs directory: '/storage/emulated/0/Android/data/fr.geonature.occtax/logs'
09:11:01.189 INFO: [fr.geonature.occtax.MainApplication] internal storage: 'MountPoint(mountPath=/storage/emulated/0, storageType=INTERNAL)'
09:11:01.190 INFO: [fr.geonature.occtax.MainApplication] external storage: 'null'
09:11:01.455 INFO: [fr.geonature.commons.settings.AppSettingsManagerImpl] loading settings from URI 'content://fr.geonature.occtax.provider/settings/settings_occtax.json'...
09:11:01.585 INFO: [fr.geonature.occtax.ui.home.HomeActivity] app settings successfully loaded
09:11:01.678 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization...
09:11:01.731 INFO: [fr.geonature.commons.data.DatabaseModule] loading local database '/storage/emulated/0/Android/data/fr.geonature.occtax/databases/data.db'...
09:11:01.765 INFO: [fr.geonature.datasync.packageinfo.PackageInfoRepositoryImpl] updating settings for 'fr.geonature.occtax'...
09:11:01.766 WARN: [fr.geonature.datasync.packageinfo.io.AppSettingsJsonWriter] undefined app settings to update from 'fr.geonature.occtax'
09:11:01.772 INFO: [fr.geonature.datasync.packageinfo.worker.CheckInputsToSynchronizeWorker] available inputs to synchronize: 0
09:11:01.868 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] no periodic synchronization configured: abort
09:11:01.872 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] starting local data synchronization from 'https://geonature-saisie.reserves-naturelles.org/geonature' (with additional data: true)...
09:11:01.897 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize dataset...
09:11:02.292 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] local data synchronization finished with failed tasks in 479ms
09:11:02.333 INFO: [fr.geonature.occtax.ui.home.HomeActivity] not connected (HTTP error code: 401), redirect to fr.geonature.datasync.ui.login.LoginActivity
09:11:02.498 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax/settings_occtax.json'...
09:11:14.833 INFO: [fr.geonature.datasync.auth.AuthManagerImpl] successfully authenticated, login expiration date: Wed Mar 16 08:11:15 GMT+01:00 2022
09:11:14.886 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization...
09:11:14.985 INFO: [fr.geonature.datasync.packageinfo.PackageInfoRepositoryImpl] updating settings for 'fr.geonature.occtax'...
09:11:14.986 WARN: [fr.geonature.datasync.packageinfo.io.AppSettingsJsonWriter] undefined app settings to update from 'fr.geonature.occtax'
09:11:15.078 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] starting local data synchronization from 'https://geonature-saisie.reserves-naturelles.org/geonature' (with additional data: true)...
09:11:15.105 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize dataset...
09:11:15.127 INFO: [fr.geonature.datasync.packageinfo.worker.InputsSyncWorker] no inputs to synchronize for 'fr.geonature.occtax'
09:11:15.580 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] local data synchronization finished with failed tasks in 518ms
09:11:15.622 INFO: [fr.geonature.occtax.ui.home.HomeActivity] not connected (HTTP error code: 401), redirect to fr.geonature.datasync.ui.login.LoginActivity
09:11:15.725 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax/settings_occtax.json'...
RNF-SI commented 2 years ago

J'ai essayé également sur le mobile d'Antoine, et j'ai les mêmes problèmes. J'ai dû également charger le fichier de conf sur son mobile.

camillemonchicourt commented 2 years ago

Ça doit être un soucis dans ta configuration je dirai, sans certitude. Tu es certain que tu as mis le bon identifiant de ton application GeoNature dans le paramètre uh_application_id ? Ce paramètre n'est pas forcément bien nommé, c'est bien l'identifiant de l'application GeoNature qu'il faut y renseigner et pas celui de UsersHub.

RNF-SI commented 2 years ago

oh... en effet ce n'est pas très bien nommé. Ça marche bien mieux d'un coup... merci !

JeromeMaruejouls commented 2 years ago

Juste pour info, sur des téléphones Crosscall, j'ai dû aussi copier les fichiers de conf et l'apk de d'occtax manuellement. Pas de téléchargement automatique sur le serveur malgré toutes les autorisations. Pas de soucis avec d'autres marques de tel.

camillemonchicourt commented 2 years ago

OK tu n'es pas le premier à te faire avoir : https://github.com/PnX-SI/gn_mobile_occtax/issues/116

Même si il faut lire la doc :-), qui dit bien :

uh_application_id : GeoNature application ID in UsersHub

RNF-SI commented 2 years ago

Le pire c'est que je l'ai vu, et je l'ai délibérément ignoré me disant que c'était une erreur de la doc ^^

camillemonchicourt commented 2 years ago

C'est plus logique que Occtax-mobile ait besoin de savoir l'id de GeoNature pour s'y connecter. Par contre l'id de UsersHub, il n'y a pas de raison qu'il en ait besoin :-) Mais oui, il faut que l'on renomme ce paramètre.