[Python] Récupération des données API Withings avec OAuth 2.0

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
jme
Messages : 67
Inscription : 04 août 2017, 19:21

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jme »

seulement avec l'option sync.
si je fais le setup et que je fais le sync il fonctionne la première fois, plus après.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par papoo »

dans le répertoire

Code : Tout sélectionner

/home/pi/domoticz/scripts/python/
assure toi de la presence d'un fichier nommé config.ini
assure toi que ce fichier ait les droits de l'utilisateur courant pas root
2020-01-12 09_18_02-Window.png
2020-01-12 09_18_02-Window.png (1.4 Kio) Consulté 7474 fois
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
jme
Messages : 67
Inscription : 04 août 2017, 19:21

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jme »

Je viens de changer les droits et ai executé le script, il a l'air de tourner, il a just mis une erreur car il a pas mesuré l'onde de pouls ce matin.

Code : Tout sélectionner

-rw-rw-r-- 1 pi   pi     391 jan 11 06:39 config.ini

Code : Tout sélectionner

 sudo python3 /home/pi/domoticz/scripts/python/withings-sync.py sync
Traceback (most recent call last):
  File "/home/pi/domoticz/scripts/python/withings-sync.py", line 406, in <module>
    if y != None and idx_heart_pulse != None:
NameError: name 'y' is not defined
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jackslayter »

j'ai le même problème
voir la viewtopic.php?f=17&t=7428&start=20#p74595
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par papoo »

jackslayter a écrit : 13 janv. 2020, 11:44 j'ai le même problème
mais tu n'as pas la body cardio + c'est ça?
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jackslayter »

ah oui effectivement
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
jme
Messages : 67
Inscription : 04 août 2017, 19:21

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jme »

ce matin le script n'a pas fonctionné, voici l'erreur.

Code : Tout sélectionner

sudo python3 /home/pi/domoticz/scripts/python/withings-sync.py sync
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 330, in request
    http_method=method, body=data, headers=headers)
  File "/usr/local/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 198, in add_token
    raise TokenExpiredError()
oauthlib.oauth2.rfc6749.errors.TokenExpiredError: (token_expired) 

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/domoticz/scripts/python/withings-sync.py", line 278, in <module>
    measures = client_nokia.get_measures(limit=3)
  File "/usr/local/lib/python3.6/site-packages/nokia/__init__.py", line 217, in get_measures
    r = self.request('measure', 'getmeas', kwargs)
  File "/usr/local/lib/python3.6/site-packages/nokia/__init__.py", line 202, in request
    r = self.client.request(method, '/'.join(url_parts), params=params)
  File "/usr/local/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 343, in request
    self.auto_refresh_url, auth=auth, **kwargs
  File "/usr/local/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py", line 309, in refresh_token
    self.token = self._client.parse_request_body_response(r.text, scope=self.scope)
  File "/usr/local/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 421, in parse_request_body_response
    self.token = parse_token_response(body, scope=scope)
  File "/usr/local/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 431, in parse_token_response
    validate_token_parameters(params)
  File "/usr/local/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 441, in validate_token_parameters
    raise MissingTokenError(description="Missing access token parameter.")
oauthlib.oauth2.rfc6749.errors.MissingTokenError: (missing_token) Missing access token parameter.
J ai la body cardio.

J'ai relancé le set up et et le script et la cas e met a jour :/

on dirait que le token expire chaques jours ...
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par papoo »

je ne sais comment t'aider.
essayer de désinstaller la lib nokia et de la réinstallé, c'est ce qui avait fonctionné pour moi la derniere fois.
essai ensuite de n'activer les mesures qu'une a une des fois qu'une soit à l'origine du problème.
ensuite pour le problème de token, essaie de faire un issue sur le github de la lib nokia
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Claude
Messages : 19
Inscription : 03 juil. 2016, 20:28

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par Claude »

Bonjour,
J'utilise depuis plusieurs mois sans problème la remonté dans Domoticz de ma balance Body+.
En debut de semaine, j'ai fait une mise a jour de Domoticz qui a planté. pas moyen de réparer j'ai du faire une restore avec la situation de la veille.
Tout refonctionne normalement sauf la syncrospector withings (le fichier config.ini ne contenant que des %0)
J'ai effacé le fichier et voulu refaire un setup nokia.
Malheureusement cela ne fonctionne plus. le fichier config.ini n'est pas créé.
Je déroule normalement le process, je donne l'ID, le secret, l'URL callback et j'obtiens bien le lien.
Avec ce lien j'arrive bien sur la page d'autorisation, je clique sur autoriser je vois que je suis rediriger vers l'IP du raspberry, mais le raspberry ne réponds pas
Sur le terminal j'obtiens ce message d'erreur

Code : Tout sélectionner

Visit: https://account.withings.com/oauth2_user/authorize2?response_type=code&client_id=d52f7dc10dbf49f86775f76c78e67efe59526561aaac6d578e2419d6700878ba&redirect_uri=http%3A%2F%2F192.168.1.55%3A8087&scope=user.metrics&state=0Cm3lfvKmSxFkuL6joY9gGkVwc30tK
and select your user and click "Allow this app".
Traceback (most recent call last):
  File "/home/claude/domoticz/scripts/python/sync_body_claude.py", line 268, in <module>
    setup_nokia( options, config )
  File "/home/claude/domoticz/scripts/python/sync_body_claude.py", line 210, in setup_nokia
    creds = auth.get_credentials(nokia_auth_code)
  File "/usr/local/lib/python3.7/dist-packages/nokia/__init__.py", line 86, in get_credentials
    client_secret=self.consumer_secret)
  File "/usr/lib/python3/dist-packages/requests_oauthlib/oauth2_session.py", line 192, in fetch_token
    raise ValueError('Please supply either code or '
ValueError: Please supply either code or authorization_response parameters.
j'ai essayer de tout réinstaller, mais sans succès. j'ai même refais une installation de Raspbien sur une autre SD installer domoticz et le package withings, mais c'est toujours KO
j'ai également tester sur plusieurs port pour le l'url callback

Je ne comprend pas.
quelqu'un pourrait il m'aider

Merci d'avance
Claude
Messages : 19
Inscription : 03 juil. 2016, 20:28

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par Claude »

Bonjour,

Je viens de trouver la solution a mon problème.

Je travaille sur MAC et j'utilisais Safari. Le problème semblerai venir de la.
Si j'utilise Chrome, le setup nokia fonctionne bien (création du fichier config) et je peut faire les sync...

En début d'année lorsque j'avais acheté la balance, il me semble pourtant qu'a l'époque j'avais tout fait sous Safari
Répondre