4.4 KiB
4.4 KiB
Strava
Overview
The Strava source can sync data from the Strava API
Useful links:
Output schema
This Source is capable of syncing the following Streams:
- Athlete Stats
- Activities (Incremental)
Features
| Feature | Supported? |
|---|---|
| Full Refresh Sync | Yes |
| Incremental - Append Sync | Yes |
| Namespaces | No |
Requirements
- client_id - Strava account client ID
- client_secret - Strava account client secret
- refresh_token - Strava account refresh token
- athlete_id - Strava athlete ID (only used for Athlete Stats)
- query_start_timestamp - Starting timestamp for listing activities (only used for Activities)
Setup guide
Follow these steps to get the required credentials and inputs:
client_idandclient_secret- Create a Strava account
- Continue to follow the instructions from the doc above to obtain
client_idandclient_secret
refresh_token- Enter this URL into your browser (make sure to add your
client_idfrom previous step:http://www.strava.com/oauth/authorize?client_id=[REPLACE_WITH_YOUR_CLIENT_ID]&response_type=code&redirect_uri=http://localhost/exchange_token&approval_prompt=force&scope=activity:read_all
- Authorize through the UI
- Browser will redirect you to an empty page with a URL similar to
http://localhost/exchange_token?state=&code=b55003496d87a9f0b694ca1680cd5690d27d9d28&scope=activity:read_all - Copy the authorization code above (in this example it would be
b55003496d87a9f0b694ca1680cd5690d27d9d28) - Make a cURL request to exchange the authorization code and scope for a refresh token:
-
curl -X POST https://www.strava.com/oauth/token \ -F client_id=YOUR_CLIENT_ID \ -F client_secret=YOUR_CLIENT_SECRET \ -F code=AUTHORIZATION_CODE \ -F grant_type=authorization_code - The resulting json will contain the
refresh_token - Example Result:
-
{ "token_type": "Bearer", "expires_at": 1562908002, "expires_in": 21600, "refresh_token": "REFRESHTOKEN", "access_token": "ACCESSTOKEN", "athlete": { "id": 123456, "username": "MeowTheCat", "resource_state": 2, "firstname": "Meow", "lastname": "TheCat", "city": "", "state": "", "country": null, ... } } - Refer to Strava's Getting Started - Oauth or Authentication documents for more information
- Enter this URL into your browser (make sure to add your
athlete_id- Go to your athlete page by clicking your name on the Strava dashboard or click on "My Profile" on the drop down after hovering on your top bar icon
- The number at the end of the url will be your
athlete_id. For example17831421would be theathlete_idfor https://www.strava.com/athletes/17831421
Performance considerations
Strava API has limitations to 100 requests every 15 minutes, 1000 daily. More information about Strava rate limits and adjustments to those limits can be found here.
Changelog
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 0.1.2 | 2021-12-15 | 8799 | Implement OAuth 2.0 support |
| 0.1.1 | 2021-12-06 | 8425 | Update title, description fields in spec |
| 0.1.0 | 2021-10-18 | 7151 | Initial release supporting Strava API |