Security News
NIST Misses 2024 Deadline to Clear NVD Backlog
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
###Status
Supports API functionality for all API endpoints from oauth
to uploads
:
oauth
athlete
athletes
activities
clubs
gear
segments
segment_efforts
streams
uploads
npm install strava-v3
##Quick start
access_token
$ npm install strava-v3
$ mkdir data
$ cp node_modules/strava-v3/strava_config data/strava_config
data/strava_config
in your favorite text editor and supply your applications access_token
to the access_token
field var strava = require('strava-v3');
strava.athlete.get({},function(err,payload) {
if(!err) {
console.log(payload);
}
else {
console.log(err);
}
});
##Resources
##Usage
###General
API access is designed to be as closely similar in layout as possible to Strava's own architecture, with the general call definition being
var strava = require('strava-v3')
strava.<api endpoint>.<api endpoint option>(args,callback)
Example usage:
var strava = require('strava-v3');
strava.athletes.get({id:12345},function(err,payload) {
//do something with your payload
});
###Overriding the default access_token
You'll probably want to do this with every call once your app is in production, using an access_token
specific to a validated user allows for detailed athlete information, as well as the option for additional PUT
/POST
/DELETE
privileges.
Just add the property 'access_token':'your access_token'
to the args
parameter of your call, the wrapper will use the provided access_token
instead of the default in data/strava_config
.
Example usage:
var strava = require('strava-v3');
strava.athlete.get({'access_token':'abcde'},function(err,payload) {
//do something with your payload
});
###Dealing with pagination
For those API calls that support pagination, you can control both the page
being retrieved and the number of responses to return per_page
by adding the corresponding properties to args
.
Example usage:
var strava = require('strava-v3');
strava.athlete.getFollowers({
'page':1
, 'per_page':2
},function(err,payload) {
//do something with your payload
});
###Uploading files
To upload a file you'll have to pass in the data_type
as specified in Strava's API reference as well as a string file
designating the <filepath>/<filename>
. If you want to get updates on the status of your upload pass in statusCallback
along with the rest of your args
- the wrapper will check on the upload once a second until complete.
Example usage:
var strava = require('strava-v3');
strava.uploads.post({
'data_type':'gpx'
, 'file': 'data/your_file.gpx'
, 'name': 'Epic times'
, 'statusCallback': function(err,payload) {
//do something with your payload
}
},function(err,payload) {
//do something with your payload
});
###Supported API Endpoints
Oauth:
strava.oauth.getRequestAccessURL(args)
strava.oauth.getToken(code,done)
strava.oauth.deauthorize(args,done)
Athlete:
strava.athlete.get(args,done)
strava.athlete.update(args,done)
strava.athlete.listFriends(args,done)
strava.athlete.listFollowers(args,done)
strava.athlete.listActivities(args,done)
Athletes:
strava.athletes.get(args,done)
strava.athletes.listFriends(args,done)
strava.athletes.listFollowers(args,done)
strava.athletes.listKoms(args,done)
Activities:
strava.activities.get(args,done)
strava.activities.create(args,done)
strava.activities.update(args,done)
strava.activities.delete(args,done)
strava.activities.listFriends(args,done)
strava.activities.listZones(args,done)
strava.activities.listLaps(args,done)
strava.activities.listComments(args,done)
strava.activities.listKudos(args,done)
strava.activities.listPhotos(args,done)
Clubs:
strava.clubs.get(args,done)
strava.clubs.listMembers(args,done)
strava.clubs.listActivities(args,done)
Gear:
strava.gear.get(args,done)
Segments:
strava.segments.get(args,done)
strava.segments.listStarred(args,done)
strava.segments.listEfforts(args,done)
strava.segments.listLeaderboard(args,done)
strava.segments.explore(args,done)
Segment Efforts:
strava.segmentEfforts.get(args,done)
Streams:
strava.streams.activity(args,done)
strava.streams.effort(args,done)
strava.streams.segment(args,done)
Uploads:
strava.uploads.post(args,done)
##Development
This package includes a full test suite runnable via grunt jshint simplemocha
or npm test
,
and will both delint and run shallow tests on API endpoints.
###Running the tests
You'll first need to supply data/strava_config
with an access_token
that has both private read and write permissions:
data/strava_config
.strava.oauth.getRequestAccessURL({scope:"view_private write"})
to generate the request url and query it via your browser.code
will be included in the redirection url.code
for a new access_token
: strava.oauth.getToken(code,function(err,payload) {
console.log(payload);
});
access_token
to data/strava_config
and go run some tests:grunt jshint simplemocha
or npm test
.
###How the tests work
Using the provided access_token
tests will access each endpoint individually:
GET
endpoints) checks to ensure the correct type has been returned from the Strava.PUT
in athlete.update
) changes some athlete properties, then changes them back.POST/PUT/DELETE
in activities.create/update/delete
) first creates an activity, runs some operations on it, then deletes it.FAQs
Simple wrapper for Strava v3 API
The npm package strava-v3 receives a total of 2,910 weekly downloads. As such, strava-v3 popularity was classified as popular.
We found that strava-v3 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.