node-soundcloud
v0.0.6
Published
A node.js wrapper for the Soundcloud SDK.
Downloads
2,913
Readme
node-soundcloud
node.js wrapper for the Soundcloud SDK. Inspired by the libraries soundcloud-node and soundclouder.js.
Getting started
npm install --save node-soundcloud
var SC = require('node-soundcloud')
Getting an OAuth Token
- Require
node-soundcloud
and initialize with your parameters - Redirect user to the necessary SoundCloud Connect URL
- User will then be redirected to your
redirect_uri
, which can be handled by an Express endpoint (discussed in the next section).
var SC = require('node-soundcloud');
// Initialize client
SC.init({
id: 'your SoundCloud client ID',
secret: 'your SoundCloud client secret',
uri: 'your SoundCloud redirect URI'
});
// Connect user to authorize application
var initOAuth = function(req, res) {
var url = SC.getConnectUrl();
res.writeHead(301, { location: url });
res.end();
};
// Get OAuth token (example endpoint discussed in the next section)
Example Redirect URI Endpoint
After your user is redirected to the Connect URL, SoundCloud will then redirect them back to the URL you have specified as your redirect_uri
. There will also be the parameter code
in the query string, and this is used to retrieve your OAuth token. An endpoint to handle this could work as follows:
var redirectHandler = function(req, res) {
var code = req.query.code;
SC.authorize(code, function(err, accessToken) {
if ( err ) {
throw err;
} else {
// Client is now authorized and able to make API calls
console.log('access token:', accessToken);
}
});
};
Initializing with an OAuth Token
If you have already acquired an OAuth access token, you can initialize the client without going through the authorization process by passing it as an extra option:
var SC = require('node-soundcloud');
// Initialize client with additional accessToken field
SC.init({
id: 'your SoundCloud client ID',
secret: 'your SoundCloud client secret',
uri: 'your SoundCloud redirect URI',
accessToken: 'your existing access token'
});
Making calls to the SoundCloud API
Once authorized (or if you're accessing unprotected endpoints), you may now make calls to the SoundCloud API documented here. An example could be as follows:
SC.get('/tracks/276882056', function(err, track) {
if ( err ) {
throw err;
} else {
console.log('track retrieved:', track);
}
});