Export all your Fitbit data to Google Fit. If you find this useful, please star :star: the repository on Github.
Unlike other alternatives, such as fitnessyncer.com, this aims to offer very fine granularity for the data.
To add new activities
Tennis
)87
).convertors.py
You have to register your own Fitbit and Google Fit applications. This setup is a one time thing.
This is a python3 application so install all the dependencies
virtualenv fitbitenv
source fitbitenv/bin/activate
pip3 install -r requirements.txt
All instructions below must be performed using the same Fitbit account you want to sync with Google Fit.
Application Name : --
Description : --
Application Website : --
Organization : --
Organization Website : --
OAuth 2.0 Application Type : **Personal**
Callback URL : http://localhost:8080/
Default Access Type : Read-Only
Note :
1. Use your own information for fields marked --
2. Make sure you copy the Callback URL exactly (including the last /)
3. Application Type MUST be Personal
OAuth 2.0 Client ID
and Client Secret
cd /auth
python3 auth_fitbit.py -i <client-id> -s <client-secret>
Continue
. Then select Go to credentials
and select Client ID
Other
and hit Create
client ID
and client secret
cd /auth
python3 auth_google.py -i <client-id> -s <client-secret>
Get your Google Developer Project Number (a 12 digit number) from a the Google Developers Console
Update project_number
in config.ini
to be your Google Developer Project Number.
Modify any other variables you'd like in config.ini
with your own choices and start the sync using python3 app.py
python3 app.py -s 2016-08-20 -e 2016-08-22
python3 app.py -s "2 days ago" -e tomorrow
python3 app.py -s "jan 1 2016" -e "feb 1 2016"
You can setup a cron task to automatically sync everyday at 2:30 AM.
30 2 * * * /path-to-repo/fitbit-googlefit/cron.sh >> /path-to-repo/fitbit-googlefit/cron.log 2>&1
Add above line to your cron tab: crontab -e
in Linux. Sync logs will be stored to cron.log
in repository.
If you want to do the authentication process on a system without a display - such as a raspberry pi or a remote server, pass --console
or -c
option to the authentication scripts. See below examples.
python3 auth_fitbit.py -i clientid -s clientsecret --console
python3 auth_google.py -i clientid -s clientsecret --console
-h
flag. config.ini
values.