Stravalib
Just For Me : mention athlete dans une réponse (sur PC)
- le @Paulo... ne fonctionne que sur l'appli Android et iPhone( pwerk...)
- solution : [strava://athletes/2653185] avec le numéro de l'athlete
Pour ma pomme, ça donne ça [strava://athletes/6852658]
source : https://support.strava.com/hc/en-us/community/posts/212717028--Mentions-on-Strava-send-us-your-feedback
Utilisation de l'api strava :
Creation obligatoire d'une application Strava necessaire pour obtenir CLIENT_ID, CLIENT_SECRET, TOKEN_ACCESS et CODE |
Remplir (genre ci-dessous) les champs demandés afin de creer l'appli : http://www.strava.com/settings/api |
Obtention de ''access_token" avec accés en ecriture sur compte Strava |
|
En environnement virtuel |
|
Installation sans environnement virtuel |
|
Ex d'utilisation pythonesque |
#import de la lib from stravalib import Client #instanciation d'un Client avec le jeton obtenu ci-dessus) client = Client(access_token='58...........................eb') #l'objet Client dispose d'un bon paquet de méthode client.get_athlete() client.get_athlete() for f in client.get_athlete_followers(): print(f) #c'est tout :-) |
Ou alors...(largement à modifier !) |
#!/usr/bin/python3 # -*- coding: utf8 # ##################################################### # import os import socket from datetime import datetime, timedelta from stravalib import Client from stravalib import model, exc, attributes, unithelper as uh # from urllib2 import urlopen # voir requests qui a l'air plus performant # http://fr.python-requests.org/en/latest/ #import requests #from urllib.request import urlopen, ProxyHandler # ##################################################### # globales # import pdb; pdb.set_trace() BOLD = "\033[1m" RESET = "\033[0;0m" CLIENT_TOKEN='xxxxcx785245b289xxxxxx' # ##################################################### # classes # # fonctions # ##################################################### # def new_run1(client): #creation d'un run avec elapsed_time now = datetime.now().replace(microsecond=0) a = client.create_activity("[fake] test_api_strava from canapé", activity_type=model.Activity.RUN, start_date_local=now, elapsed_time=str(timedelta(hours=1, minutes=4, seconds=5).total_seconds()).replace('.0', ''), description = 'creve = pas courir = testage api strava en mode pythonesque', distance=uh.kilometers(15.2)) #distance=uh.miles(15.2)) return a.id def new_run2(client): #creation d'un run now = datetime.now().replace(microsecond=0) a = client.create_activity("A_Virer", activity_type=model.Activity.RUN, start_date_local=now, elapsed_time=3600, description = 'strava lib', distance=uh.kilometers(1.2)) #distance=uh.miles(15.2)) return a.id def new_run1_gpx(client): #le fchier gpx doit être au bon format...faudra ptet le bricoler un peu... now = datetime.now().replace(microsecond=0) with open('stl.gpx') as fp: uploader = client.upload_activity(fp, data_type = 'gpx', name = 'fake_stl_from_canapé', description = 'création activité avec gps façon python, ça va envoyer du segment..., tout ça dans un fauteuil ;-)', activity_type=model.Activity.RUN) #a = uploader.wait() return uploader def main(): #au taf, je dois passer par un proxy (mon ip = xxx.227.xxx.xxx ip = socket.gethostbyname(socket.getfqdn()) if '227' in ip: if not 'proxy' in os.environ.keys(): os.environ['http_proxy'] = '192.168.1.254:8080' os.environ['https_proxy'] = '192.168.1.254:8080' client= Client(access_token=CLIENT_TOKEN) moi=client.get_athlete() # print(moi.id) # print(moi.shoes) # print(moi.email) # for f in client.get_athlete_followers(): print(f.lastname, f.firstname, f.city, f.sex) a = new_run1_gpx(client) print(a) # ##################################################### # if __name__ == '__main__': main() # ##################################################### |
En vrac : |
|
Source :
- http://pythonhosted.org/stravalib/api.html
- https://strava.github.io/api/
- https://developers.strava.com/docs/