dev

Strava Upload – A Library For Synchronization of Strava Activities and Other Services (Suunto Movescount, etc.)

Overview

Strava Upload is s simple library that  synchronizes moves (activities) with Strava. In the first version it supports moves from Suunto Movescount (a generic move/activity class is planned to support other services). If the activity is found on Strava, it tries to update its description. If not, a new activity is being created.

Library Description

The library is written in .NetCore (.Net Standard 2.0). The code is available  GitHub and you can find it in NuGet too.

PM > Install-Package StravaUpload

It consists of the following projects:

StravaUpload.Lib

The main project with the following important classes.

Uploader.cs

The main class for uploading. Nothing complicated :).

StravaUpload.StravaUploadFunction

Azure function that periodically downloads data from Suunto Movescount, store them in Azure Blob Storage and synchronize them with Strava periodically.

StravaUpload.Console

Just a test project for the library created before Azure function project.

Requirements

To be able to connect to Movescount API, you have to have following keys that are required to be able to get data:

  • MovescountAppKey – App key to be able to query Movescount API.
  • MovescountUserKey – User key to be able to query Movescount API.
  • MovescountUserEmail – User email to be able to query Movescount API.
  • MovescountMemberName – Name of the member whose data we want to get.
  • CookieValue – A cookie value that is needed to export GPX, TCX and other move files. This value can be get by the following steps:
    1. Open console in your browser to se network requests.
    2. Login into Movescount.
    3. Select a request to http://www.movescount.com/api/members/private/messages.
    4. Copy value of Cookie key in request header. It should start with ASP.NET ….

Other Configuration for Strava and Azure function:

  • BackupDir – Backup directory. Used as a root directory in Azure Blob Storage.
  • StorageConnectionString – Connection string to Azure Blob Storage.
  • ContainerName – Name of the Azure Blob Storage container.
  • StravaAccessToken – Readwrite access token to Strava.
  • SendGridApiKey – ApiKey to Sendgrid for email notification (optional).
  • EmailFrom – Sender email address (optional).
  • EmailTo – Recipient email address (optional).

Deployment

Just deploy StravaUpload.StravaUploadFunction to Azure and set required configuration. Thats all :).

Contributing

Contributing is welcomed.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s